lib/lapidarius/cutter.rb in lapidarius-2.0.1 vs lib/lapidarius/cutter.rb in lapidarius-2.1.0

- old
+ new

@@ -5,42 +5,34 @@ class Cutter DEVELOPMENT = "development" class GemNotCreatedError < StandardError; end - def initialize(gem:, version: nil, cmd_klass: Command) - @gem = gem - @version = version + def initialize(name, cmd_klass = Command) + @name = name @cmd = cmd_klass.new end - def call(src = cmd, gem = nil) - tokens = tokenize(src) + 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(cmd(dep.name), dep) + call(dep.name, dep) end gem end - private def tokenize(src) + private def tokenize(name) + src = @cmd.call(name) data = src.split(/\n\n/).map!(&:strip) - by_version(data).split("\n").tap do |tokens| + data.first.split("\n").tap do |tokens| tokens.map!(&:strip) tokens.reject! { |token| token.match(/#{DEVELOPMENT}/) } end - end - - private def by_version(data) - data.detect { |d| d.match(/^Gem #{@gem}-#{@version}/) } || data.first - end - - private def cmd(gem = @gem) - @cmd.call(gem) end end end