Class: Lapidarius::Cutter

Inherits:
Object
  • Object
show all
Defined in:
lib/lapidarius/cutter.rb

Defined Under Namespace

Classes: GemNotCreatedError

Constant Summary collapse

DEVELOPMENT =
"development"

Instance Method Summary collapse

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