Sha256: 845d6cb5535cbd86a1432eae98da69753bc262000e9e7257ae6eb13267f7f1a4
Contents?: true
Size: 1.92 KB
Versions: 1
Compression:
Stored size: 1.92 KB
Contents
require 'rake/testtask' require 'fileutils' class GemInfo def initialize @gemspec_filename = Dir['*.gemspec'][0] end def spec @spec ||= eval(File.read(@gemspec_filename)) end def name @name ||= spec.name end def version @version ||= spec.version.to_s end def gem_filename "#{name}-#{version}.gem" end def gemspec_filename @gemspec_filename end end $gem = GemInfo.new desc "Start irb #{$gem.name} session" task :console do sh "irb -rubygems -I./lib -r ./lib/#{$gem.name}.rb" end desc "Install #{$gem.name} gem" task :install => :build do gemfile = "gem/#{$gem.gem_filename}" if !gemfile.nil? sh "gem install --no-ri --no-rdoc #{gemfile}" else puts 'Could not find gem.' end end desc "Uninstall #{$gem.name} gem" task :uninstall do sh "gem uninstall #{$gem.name} -x" end desc "Build #{$gem.name} gem" task :build do FileUtils.mkdir_p('gem') sh "gem build #{$gem.gemspec_filename}" FileUtils.mv $gem.gem_filename, 'gem' end desc "Release #{$gem.name} v#{$gem.version} and tag in git" task :release => :build do if (`git` rescue nil).nil? puts 'Could not run git command.' exit! end if (`gem` rescue nil).nil? puts 'Could not run gem command.' exit! end unless (`git branch --no-color`.strip rescue '') =~ /\A*\s+master\z/ puts 'You must release from the master branch.' exit! end print "Do you want to release #{$gem.name} v#{$gem.version} and tag it in git (y/n)? " response = $stdin.gets.strip unless response =~ /\Ay/ puts 'Aborting.' exit! end version = $gem.version puts "Releasing version #{version}." sh "git commit --allow-empty -a -m \"Release #{version}.\"" sh "git tag v#{version}" sh 'git push origin master' sh "git push origin v#{version}" sh "gem push gem/#{$gem.gem_filename}" puts 'Fin.' end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rdb-0.0.1 | Rakefile |