summary refs log tree commit
diff options
context:
space:
mode:
authorJoshua Peek <josh@joshpeek.com>2009-12-24 21:04:40 -0600
committerJoshua Peek <josh@joshpeek.com>2009-12-24 21:05:18 -0600
commitafb1b4c0aeee1e2f443b5783b42b69e1716bfcac (patch)
treede9ce1762922cd1182c75dae4e1bc0fbc5075e82
parent4870337073f6f0952a97f67c63b3d867d7c74e1f (diff)
downloadrack-afb1b4c0aeee1e2f443b5783b42b69e1716bfcac.tar.gz
Modernize packaging and publishing tasks for gemcutter
-rw-r--r--Rakefile90
-rw-r--r--rack.gemspec38
2 files changed, 41 insertions, 87 deletions
diff --git a/Rakefile b/Rakefile
index b8e65377..67610d59 100644
--- a/Rakefile
+++ b/Rakefile
@@ -7,42 +7,6 @@ desc "Run all the tests"
 task :default => [:test]
 
 
-desc "Make an archive as .tar.gz"
-task :dist => [:chmod, :changelog, :rdoc, "SPEC", "rack.gemspec"] do
-  FileUtils.touch("RDOX")
-  sh "git archive --format=tar --prefix=#{release}/ HEAD^{tree} >#{release}.tar"
-  sh "pax -waf #{release}.tar -s ':^:#{release}/:' RDOX SPEC ChangeLog doc rack.gemspec"
-  sh "gzip -f -9 #{release}.tar"
-end
-
-desc "Make an official release"
-task :officialrelease do
-  puts "Official build for #{release}..."
-  sh "rm -rf stage"
-  sh "git clone --shared . stage"
-  sh "cd stage && rake officialrelease_really"
-  sh "mv stage/#{release}.tar.gz stage/#{release}.gem ."
-end
-
-task :officialrelease_really => [:fulltest, "RDOX", "SPEC", :dist, :gem] do
-  sh "sha1sum #{release}.tar.gz #{release}.gem"
-end
-
-
-def version
-  abort "You need to pass VERSION=... to build packages."  unless ENV["VERSION"]
-  ENV["VERSION"]
-end
-
-def release
-  "rack-#{version}"
-end
-
-def manifest
-  `git ls-files`.split("\n")
-end
-
-
 desc "Make binaries executable"
 task :chmod do
   Dir["bin/*"].each { |binary| File.chmod(0775, binary) }
@@ -94,57 +58,9 @@ task :fulltest => [:chmod] do
   sh "specrb -Ilib:test -w #{ENV['TEST'] || '-a'} #{ENV['TESTOPTS']}"
 end
 
-begin
-  require 'rubygems'
-rescue LoadError
-  # Too bad.
-else
-  task "rack.gemspec" do
-    spec = Gem::Specification.new do |s|
-      s.name            = "rack"
-      s.version         = version
-      s.platform        = Gem::Platform::RUBY
-      s.summary         = "a modular Ruby webserver interface"
-
-      s.description = <<-EOF
-Rack provides minimal, modular and adaptable interface for developing
-web applications in Ruby.  By wrapping HTTP requests and responses in
-the simplest way possible, it unifies and distills the API for web
-servers, web frameworks, and software in between (the so-called
-middleware) into a single method call.
-
-Also see http://rack.rubyforge.org.
-    EOF
-
-      s.files           = manifest + %w(SPEC RDOX rack.gemspec)
-      s.bindir          = 'bin'
-      s.executables     << 'rackup'
-      s.require_path    = 'lib'
-      s.has_rdoc        = true
-      s.extra_rdoc_files = ['README', 'SPEC', 'RDOX', 'KNOWN-ISSUES']
-      s.test_files      = Dir['test/{test,spec}_*.rb']
-
-      s.author          = 'Christian Neukirchen'
-      s.email           = 'chneukirchen@gmail.com'
-      s.homepage        = 'http://rack.rubyforge.org'
-      s.rubyforge_project = 'rack'
-
-      s.add_development_dependency 'test-spec'
-
-      s.add_development_dependency 'camping'
-      s.add_development_dependency 'fcgi'
-      s.add_development_dependency 'memcache-client'
-      s.add_development_dependency 'mongrel'
-      s.add_development_dependency 'thin'
-    end
-
-    File.open("rack.gemspec", "w") { |f| f << spec.to_ruby }
-  end
-
-  task :gem => ["rack.gemspec", "SPEC"] do
-    FileUtils.touch("RDOX")
-    sh "gem build rack.gemspec"
-  end
+task :gem => ["SPEC"] do
+  FileUtils.touch("RDOX")
+  sh "gem build rack.gemspec"
 end
 
 desc "Generate RDoc documentation"
diff --git a/rack.gemspec b/rack.gemspec
new file mode 100644
index 00000000..e28b9bb2
--- /dev/null
+++ b/rack.gemspec
@@ -0,0 +1,38 @@
+Gem::Specification.new do |s|
+  s.name            = "rack"
+  s.version         = "1.1.0"
+  s.platform        = Gem::Platform::RUBY
+  s.summary         = "a modular Ruby webserver interface"
+
+  s.description = <<-EOF
+Rack provides minimal, modular and adaptable interface for developing
+web applications in Ruby.  By wrapping HTTP requests and responses in
+the simplest way possible, it unifies and distills the API for web
+servers, web frameworks, and software in between (the so-called
+middleware) into a single method call.
+
+Also see http://rack.rubyforge.org.
+EOF
+
+  s.files           = Dir['{bin/*,contrib/*,example/*,lib/**/*}'] +
+                        %w(COPYING KNOWN-ISSUES rack.gemspec RDOX README SPEC)
+  s.bindir          = 'bin'
+  s.executables     << 'rackup'
+  s.require_path    = 'lib'
+  s.has_rdoc        = true
+  s.extra_rdoc_files = ['README', 'SPEC', 'KNOWN-ISSUES']
+  s.test_files      = Dir['test/{test,spec}_*.rb']
+
+  s.author          = 'Christian Neukirchen'
+  s.email           = 'chneukirchen@gmail.com'
+  s.homepage        = 'http://rack.rubyforge.org'
+  s.rubyforge_project = 'rack'
+
+  s.add_development_dependency 'test-spec'
+
+  s.add_development_dependency 'camping'
+  s.add_development_dependency 'fcgi'
+  s.add_development_dependency 'memcache-client'
+  s.add_development_dependency 'mongrel'
+  s.add_development_dependency 'thin'
+end