Refactor CLI::InternalDump.

This commit is contained in:
Markus Reiter 2017-05-20 02:57:37 +02:00
parent cc18d9e2b6
commit cac0c29f73

View File

@ -1,19 +1,26 @@
module Hbc module Hbc
class CLI class CLI
class InternalDump < InternalUseBase class InternalDump < InternalUseBase
def self.run(*arguments) def self.run(*args)
cask_tokens = cask_tokens_from(arguments) new(*args).run
raise CaskUnspecifiedError if cask_tokens.empty? end
retval = dump_casks(*cask_tokens)
def initialize(*args)
@cask_tokens = self.class.cask_tokens_from(args)
raise CaskUnspecifiedError if @cask_tokens.empty?
end
def run
retval = dump_casks
# retval is ternary: true/false/nil # retval is ternary: true/false/nil
raise CaskError, "nothing to dump" if retval.nil? raise CaskError, "nothing to dump" if retval.nil?
raise CaskError, "dump incomplete" unless retval raise CaskError, "dump incomplete" unless retval
end end
def self.dump_casks(*cask_tokens) def dump_casks
count = 0 count = 0
cask_tokens.each do |cask_token| @cask_tokens.each do |cask_token|
begin begin
cask = CaskLoader.load(cask_token) cask = CaskLoader.load(cask_token)
count += 1 count += 1
@ -22,7 +29,7 @@ module Hbc
opoo "#{cask_token} was not found or would not load: #{e}" opoo "#{cask_token} was not found or would not load: #{e}"
end end
end end
count.zero? ? nil : count == cask_tokens.length count.zero? ? nil : count == @cask_tokens.length
end end
def self.help def self.help