Class: Lapidarius::Cutter
- Inherits:
-
Object
- Object
- Lapidarius::Cutter
- Defined in:
- lib/lapidarius/cutter.rb
Defined Under Namespace
Classes: GemNotCreatedError
Constant Summary collapse
- DEVELOPMENT =
"development"
Instance Method Summary collapse
- #call(name = @name, gem = nil) ⇒ Object
-
#initialize(name, cmd_klass = Command) ⇒ Cutter
constructor
A new instance of Cutter.
Constructor Details
#initialize(name, cmd_klass = Command) ⇒ Cutter
Returns a new instance of Cutter.
10 11 12 13 |
# File 'lib/lapidarius/cutter.rb', line 10 def initialize(name, cmd_klass = Command) @name = name @cmd = cmd_klass.new end |
Instance Method Details
#call(name = @name, gem = nil) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/lapidarius/cutter.rb', line 15 def call(name = @name, gem = nil) tokens = tokenize(name) token = tokens.shift gem ||= Gem.factory(token) fail GemNotCreatedError, "unable to create a gem from #{token}" unless gem tokens.each do |t| dep = Gem.factory(t) next unless dep gem << dep call(dep.name, dep) end gem end |