Class: Lapidarius::Cutter

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

Constant Summary collapse

DEVELOPMENT =
"development"

Instance Method Summary collapse

Constructor Details

#initialize(gem:, cmd_klass: Command) ⇒ Cutter

Returns a new instance of Cutter.



8
9
10
11
# File 'lib/lapidarius/cutter.rb', line 8

def initialize(gem:, cmd_klass: Command)
  @gem = gem
  @cmd = cmd_klass.new
end

Instance Method Details

#call(src = cmd, gem = nil) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/lapidarius/cutter.rb', line 13

def call(src = cmd, gem = nil)
  tokens = tokenize(src)
  token = tokens.shift
  gem ||= Gem.factory(token)
  tokens.each do |t|
    dep = Gem.factory(t)
    next unless dep
    gem << dep
    call(cmd(dep.name), dep)
  end
  gem
end