Class: Rookie::Tasks::Gem
- Inherits:
-
Rake::TaskLib
- Object
- Rake::TaskLib
- Rookie::Tasks::Gem
- Defined in:
- lib/rookie/tasks/gem.rb
Instance Attribute Summary collapse
-
#dir ⇒ Object
Returns the value of attribute dir.
-
#spec ⇒ Object
Returns the value of attribute spec.
Instance Method Summary collapse
- #build_gem ⇒ Object
- #clean! ⇒ Object
- #define ⇒ Object
- #gem(cmd, arg = gem_file) ⇒ Object
- #gem_file ⇒ Object
-
#initialize(gemspec = nil, gem_dir = 'gem') {|_self| ... } ⇒ Gem
constructor
A new instance of Gem.
Constructor Details
#initialize(gemspec = nil, gem_dir = 'gem') {|_self| ... } ⇒ Gem
Returns a new instance of Gem.
25 26 27 28 29 30 |
# File 'lib/rookie/tasks/gem.rb', line 25 def initialize(gemspec = nil, gem_dir = 'gem') self.spec = gemspec self.dir = gem_dir yield self if block_given? define end |
Instance Attribute Details
#dir ⇒ Object
Returns the value of attribute dir.
8 9 10 |
# File 'lib/rookie/tasks/gem.rb', line 8 def dir @dir end |
#spec ⇒ Object
Returns the value of attribute spec.
8 9 10 |
# File 'lib/rookie/tasks/gem.rb', line 8 def spec @spec end |
Instance Method Details
#build_gem ⇒ Object
36 37 38 39 40 |
# File 'lib/rookie/tasks/gem.rb', line 36 def build_gem FileUtils.mkdir_p dir gem = ::Gem::Builder.new(spec).build FileUtils.mv gem, dir end |
#clean! ⇒ Object
46 47 48 |
# File 'lib/rookie/tasks/gem.rb', line 46 def clean! FileUtils.rm_rf dir end |
#define ⇒ Object
50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 |
# File 'lib/rookie/tasks/gem.rb', line 50 def define directory dir namespace :gem do desc 'Builds the gem from the specification' task :build => dir do build_gem end desc 'Pushes the gem to rubygems.org' task :push => :build do sh gem :push end desc 'Same as gem:release' task :release => :push desc 'Installs the gem locally' task :install => :build do sh gem :install end desc 'Uninstalls the gem' task :uninstall do sh gem(:uninstall, spec.name) end desc 'Removes the gem package directory' task :clean do clean! end desc 'Installs the gem locally and cleans up' task :setup => [ :install, :clean ] end desc 'Same as gem:build' task :gem => 'gem:build' end |
#gem(cmd, arg = gem_file) ⇒ Object
42 43 44 |
# File 'lib/rookie/tasks/gem.rb', line 42 def gem(cmd, arg = gem_file) "gem #{cmd} #{arg}" end |
#gem_file ⇒ Object
32 33 34 |
# File 'lib/rookie/tasks/gem.rb', line 32 def gem_file File.join dir, "#{spec.name}-#{spec.version}.gem" end |