summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGiuseppe Bilotta <giuseppe.bilotta@gmail.com>2009-03-22 00:47:36 +0100
committerGiuseppe Bilotta <giuseppe.bilotta@gmail.com>2009-03-22 13:37:31 +0100
commit17b49c169599b1f5d8a1392451f0c1d174fd15ae (patch)
tree96dfac9efacd615d432af54dfa8ad788dda337eb
parentb3dc8579ef4c9aa2ec872c116257d57d4e6a4f51 (diff)
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.
-rw-r--r--Rakefile58
-rw-r--r--rbot.gemspec45
-rwxr-xr-xtag-release2
3 files changed, 56 insertions, 49 deletions
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
diff --git a/rbot.gemspec b/rbot.gemspec
new file mode 100644
index 00000000..6369b595
--- /dev/null
+++ b/rbot.gemspec
@@ -0,0 +1,45 @@
+Gem::Specification.new do |s|
+ s.name = 'rbot'
+ s.version = '0.9.14'
+ 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 = Dir[
+ '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
+
diff --git a/tag-release b/tag-release
index f3a1c6d8..ba1b8022 100755
--- a/tag-release
+++ b/tag-release
@@ -18,7 +18,7 @@ echo "Version: $VERSION"
sed -i -e "/^\$version =/ c \$version = '$FULLVERSION'" launch_here.rb
sed -i -e "/^\$version ||=/ c \$version ||= '$FULLVERSION'" bin/rbot
-sed -i -e "/^ s.version =/ c \ s.version = '$VERSION'" Rakefile
+sed -i -e "/^ s.version =/ c \ s.version = '$VERSION'" rbot.gemspec
NOGIT=${FULLVERSION/-git/}
if [ $NOGIT == $FULLVERSION ]; then