From 17b49c169599b1f5d8a1392451f0c1d174fd15ae Mon Sep 17 00:00:00 2001 From: Giuseppe Bilotta Date: Sun, 22 Mar 2009 00:47:36 +0100 Subject: Separate gemspec from Rakefile The benefit of this separation is that hosting services such as GitHub will automatically build a gem every time the version in the spec is changed. The underside of this separation is that hosting services such as GitHub will automatically build a gem every time the version is changed. To allow the automatic gem generation to trigger on the release of 0.9.15, we demoted the version in the spec to 0.9.14. This gimmick is needed because the gem spec doesn't allow non-numeric versions. Since the gemspec is now standalone, it uses Dir instead of FileList, which is equivalent for our use case. Moreover, the Rakefile only defines the gem tasks if the spec is present. --- Rakefile | 58 ++++++++++------------------------------------------------ 1 file changed, 10 insertions(+), 48 deletions(-) (limited to 'Rakefile') diff --git a/Rakefile b/Rakefile index 89b5c15d..435e6265 100644 --- a/Rakefile +++ b/Rakefile @@ -4,54 +4,16 @@ require 'rake/gempackagetask' task :default => [:buildext] -spec = Gem::Specification.new do |s| - s.name = 'rbot' - s.version = '0.9.15' - s.summary = <<-EOF - A modular ruby IRC bot. - EOF - s.description = <<-EOF - A modular ruby IRC bot specifically designed for ease of extension via plugins. - EOF - s.requirements << 'Ruby, version 1.8.0 (or newer)' - - s.files = FileList[ - 'lib/**/*.rb', - 'bin/*', - 'data/rbot/**/*', - 'AUTHORS', - 'COPYING', - 'README', - 'REQUIREMENTS', - 'TODO', - 'ChangeLog', - 'INSTALL', - 'Usage_en.txt', - 'setup.rb', - 'launch_here.rb', - 'po/*.pot', - 'po/**/*.po' - ] - - s.bindir = 'bin' - s.executables = ['rbot', 'rbot-remote'] - s.default_executable = 'rbot' - s.extensions = 'Rakefile' - -# s.autorequire = 'rbot/ircbot' - s.has_rdoc = true - s.rdoc_options = ['--exclude', 'post-install.rb', - '--title', 'rbot API Documentation', '--main', 'README', 'README'] - - s.author = 'Tom Gilbert' - s.email = 'tom@linuxbrit.co.uk' - s.homepage = 'http://ruby-rbot.org' - s.rubyforge_project = 'rbot' -end - -Rake::GemPackageTask.new(spec) do |pkg| - pkg.need_zip = true - pkg.need_tar = true +SPECFILE = 'rbot.gemspec' +# The Rakefile is also used after installing the gem, to build +# the .mo files. Since in this case the SPECFILE is not available, +# we must (and can) skip defining the gem packaging tasks. +if File.exist? SPECFILE + spec = eval(File.read(SPECFILE), nil, SPECFILE) + Rake::GemPackageTask.new(spec) do |pkg| + pkg.need_zip = true + pkg.need_tar = true + end end # normalize a po/pot file -- cgit v1.2.3