Rakefile in newgem-0.6.0 vs Rakefile in newgem-0.7.0
- old
+ new
@@ -7,20 +7,27 @@
require 'rake/contrib/rubyforgepublisher'
require 'fileutils'
include FileUtils
require File.join(File.dirname(__FILE__), 'lib', 'newgem', 'version')
+AUTHOR = "Dr Nic Williams"
+EMAIL = "drnicwilliams@gmail.com"
+DESCRIPTION = "Make your own gems at home"
+RUBYFORGE_PROJECT = "newgem"
+HOMEPATH = "http://#{RUBYFORGE_PROJECT}.rubyforge.org"
+BIN_FILES = %w( newgem )
+RELEASE_TYPES = %w( gem ) # can use: gem, tar, zip
+
NAME = "newgem"
REV = nil #File.read(".svn/entries")[/committed-rev="(\d+)"/, 1] rescue nil
VERS = ENV['VERSION'] || (Newgem::VERSION::STRING + (REV ? ".#{REV}" : ""))
CLEAN.include ['**/.*.sw?', '*.gem', '.config']
RDOC_OPTS = ['--quiet', '--title', "newgem documentation",
"--opname", "index.html",
"--line-numbers",
"--main", "README",
"--inline-source"]
-BIN_FILES = %w( newgem )
desc "Packages up newgem gem to make gems."
task :default => [:test]
task :package => [:clean]
@@ -34,19 +41,21 @@
s.version = VERS
s.platform = Gem::Platform::RUBY
s.has_rdoc = true
s.extra_rdoc_files = ["README", "CHANGELOG"]
s.rdoc_options += RDOC_OPTS + ['--exclude', '^(examples|extras)\/']
- s.summary = "Make your own gems at home"
- s.description = s.summary
- s.author = "Dr Nic Williams"
- s.email = 'drnicwilliams@gmail.com'
- s.homepage = 'http://newgem.rubyforge.org'
+ s.summary = DESCRIPTION
+ s.description = DESCRIPTION
+ s.author = AUTHOR
+ s.email = EMAIL
+ s.homepage = HOMEPATH
s.executables = BIN_FILES
+ s.rubyforge_project = RUBYFORGE_PROJECT
s.bindir = "bin"
s.add_dependency('activesupport', '>=1.3.1')
+ s.add_dependency('hoe', '>=1.1.4')
#s.required_ruby_version = '>= 1.8.2'
s.files = %w(README Rakefile) +
Dir.glob("{bin,doc,test,lib,templates,extras,website,script}/**/*") +
Dir.glob("ext/**/*.{h,c,rb}") +
@@ -56,21 +65,33 @@
s.require_path = "lib"
# s.extensions = FileList["ext/**/extconf.rb"].to_a
end
Rake::GemPackageTask.new(spec) do |p|
- p.need_tar = false
+ p.need_tar = RELEASE_TYPES.include? 'tar'
+ p.need_zip = RELEASE_TYPES.include? 'zip'
p.gem_spec = spec
end
-task :install do
- sh %{rake package}
+task :install => [ :package ] do
sh %{sudo gem install pkg/#{NAME}-#{VERS}}
end
task :install_win => [:package] do
- %x{gem install pkg\\#{NAME}-#{VERS}.gem}
+ puts "gem install pkg/#{NAME}-#{VERS}.gem"
+ puts system("gem install pkg/#{NAME}-#{VERS}.gem")
end
task :uninstall => [:clean] do
sh %{sudo gem uninstall #{NAME}}
end
+
+desc "Publish the release files to RubyForge."
+task :release => [ :package ] do
+ system('rubyforge login')
+ for ext in RELEASE_TYPES
+ release_command = "rubyforge add_release #{RUBYFORGE_PROJECT} #{NAME} 'REL #{VERS}' pkg/#{NAME}-#{VERS}.#{ext}"
+ puts release_command
+ system(release_command)
+ end
+end
+