class HammerCLI::Options::OptionCollector

Attributes

option_processor[RW]

Public Class Methods

new(recognised_options, option_processor) click to toggle source
# File lib/hammer_cli/options/option_collector.rb, line 6
def initialize(recognised_options, option_processor)
  @recognised_options = recognised_options

  if !option_processor.is_a?(HammerCLI::Options::ProcessorList)
    @option_processor = HammerCLI::Options::ProcessorList.new(option_processor)
  else
    @option_processor = option_processor
  end
end

Public Instance Methods

all_options() click to toggle source
# File lib/hammer_cli/options/option_collector.rb, line 20
def all_options
  @all_options ||= translate_nils(all_options_raw)
end
all_options_raw() click to toggle source
# File lib/hammer_cli/options/option_collector.rb, line 16
def all_options_raw
  @all_options_raw ||= @option_processor.process(@recognised_options, {})
end
options() click to toggle source
# File lib/hammer_cli/options/option_collector.rb, line 24
def options
  @options ||= all_options.reject { |key, value| value.nil? && all_options_raw[key].nil? }
end

Private Instance Methods

translate_nil(value) click to toggle source
# File lib/hammer_cli/options/option_collector.rb, line 34
def translate_nil(value)
  value == HammerCLI::NilValue ? nil : value
end
translate_nils(opts) click to toggle source
# File lib/hammer_cli/options/option_collector.rb, line 30
def translate_nils(opts)
  Hash[ opts.map { |k,v| [k, translate_nil(v)] } ]
end