class Gemrat::Runner
Attributes
instance[RW]
gem[RW]
gemfile[RW]
gems[RW]
no_install[RW]
no_version[RW]
version_constraint[RW]
Public Class Methods
new(*args)
click to toggle source
# File lib/gemrat/runner.rb, line 15 def initialize(*args) with_error_handling { parse_arguments(*args) } end
run(*args)
click to toggle source
# File lib/gemrat/runner.rb, line 6 def run(*args) @instance ||= new(*args) @instance.run end
Public Instance Methods
run()
click to toggle source
# File lib/gemrat/runner.rb, line 19 def run for_each_gem do with_error_handling { gemfile.add(gem) } end run_bundle unless skip_bundle? end
Private Instance Methods
for_each_gem() { || ... }
click to toggle source
# File lib/gemrat/runner.rb, line 58 def for_each_gem gems && gems.each do |gem| set_no_version(gem) set_version_constraint(gem) self.gem = gem yield end end
parse_arguments(*args)
click to toggle source
# File lib/gemrat/runner.rb, line 34 def parse_arguments(*args) Arguments.new(*args).tap do |a| self.gems = a.gems self.gemfile = a.gemfile self.no_install = a.options.no_install self.no_version = a.options.no_version self.version_constraint = a.options.version_constraint end end
run_bundle()
click to toggle source
# File lib/gemrat/runner.rb, line 85 def run_bundle puts "Bundling...".green `bundle` end
set_no_version(gem)
click to toggle source
# File lib/gemrat/runner.rb, line 71 def set_no_version(gem) if no_version gem.no_version! end end
set_version_constraint(gem)
click to toggle source
# File lib/gemrat/runner.rb, line 67 def set_version_constraint(gem) gem.version_constraint = version_constraint end
skip_bundle?()
click to toggle source
# File lib/gemrat/runner.rb, line 77 def skip_bundle? gems.nil? || gems.empty? || gems.select(&:valid?).empty? || !gemfile.needs_bundle? || no_install end
with_error_handling() { || ... }
click to toggle source
# File lib/gemrat/runner.rb, line 44 def with_error_handling yield rescue Arguments::PrintHelp rescue Gem::NotFound puts Messages::GEM_NOT_FOUND.red % gem.name gem.invalid! rescue Gemfile::DuplicateGemFound puts Messages::DUPLICATE_GEM_FOUND % gem.name gem.invalid! rescue Gem::InvalidFlags puts Messages::INVALID_FLAGS.red gem.invalid! end