foca / sinatra-ditties

A series of plugins and useful helpers for the Sinatra web framework

sinatra-ditties / Rakefile
100644 68 lines (54 sloc) 1.705 kb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
require "rake/testtask"
require "rake/clean"
 
require File.dirname(__FILE__) + "/lib/sinatra/ditties"
 
task :default => :test
 
desc "Run tests"
Rake::TestTask.new(:test) do |t|
  t.test_files = FileList["test/*_test.rb"]
end
 
directory "dist/"
CLOBBER.include("dist")
 
task :rdoc => FileList['lib/**/*.rb','README.rdoc'] do |t|
  sh <<-EOS
hanna --charset utf8 \
--fmt html \
--inline-source \
--line-numbers \
--main README.rdoc \
--op dist/doc \
--title 'Sinatra Ditties Documentation' \
#{t.prerequisites.join(" ")}
EOS
end
 
def package(ext='')
  "dist/sinatra-ditties-#{Sinatra::Ditties.version}" + ext
end
 
desc "Build packages"
task :package => %w[.gem .tar.gz].map {|e| package(e)}
 
desc "Build and install as local gem"
task :install => package(".gem") do
  sh "gem install #{package(".gem")}"
end
 
directory "dist/"
 
file package(".gem") => %w[dist/ sinatra-ditties.gemspec] do |f|
  sh "gem build sinatra-ditties.gemspec"
  mv File.basename(f.name), f.name
end
 
file package(".tar.gz") => %w[dist/] do |f|
  sh "git archive --format=tar HEAD | gzip > #{f.name}"
end
 
namespace :publish do
  task :release => [package(".gem"), package(".tar.gz")] do
  sh <<-EOS
rubyforge add_release \
sinatra-ditties sinatra-ditties #{Sinatra::Ditties.version} #{package('.gem')} &&
rubyforge add_file \
sinatra-ditties sinatra-ditties #{Sinatra::Ditties.version} #{package('.tar.gz')}
EOS
end
 
  desc 'Publish doc to rubyforge'
  task :doc => :rdoc do
    user = ENV["USER"] == "simon" ? "srt" : ENV["USER"]
    sh "scp -r dist/doc/* #{user}@rubyforge.org:/var/www/gforge-projects/sinatra-ditties/"
  end
end