class HammerCLI::Options::OptionCollector

Attributes

option_sources[RW]

Public Class Methods

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

Public Instance Methods

all_options() click to toggle source
# File lib/hammer_cli/options/option_collector.rb, line 17
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 11
def all_options_raw
  @all_options_raw ||= @option_sources.inject({}) do |all_options, source|
    source.get_options(@recognised_options, all_options)
  end
end
options() click to toggle source
# File lib/hammer_cli/options/option_collector.rb, line 21
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 31
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 27
def translate_nils(opts)
  Hash[ opts.map { |k,v| [k, translate_nil(v)] } ]
end