class Bogo::Cli::Parser::OptionValues

Constants

NONFORWARDABLE

Public Class Methods

new() click to toggle source
# File lib/bogo-cli/parser.rb, line 23
def initialize
  @defaults = Smash.new
  @sets = Smash.new
end

Public Instance Methods

[]=(key, value) click to toggle source
# File lib/bogo-cli/parser.rb, line 28
def []=(key, value)
  assign(key, value)
end
assign(key, value) click to toggle source
# File lib/bogo-cli/parser.rb, line 32
def assign(key, value)
  key = key.to_s.gsub("-", "_").to_sym
  @sets[key] = value
  self
end
composite() click to toggle source
# File lib/bogo-cli/parser.rb, line 72
def composite
  Smash.new.tap do |c|
    keys.each do |k|
      c[k] = @sets.fetch(k, @defaults[k])
    end
  end
end
default?(key) click to toggle source
# File lib/bogo-cli/parser.rb, line 48
def default?(key)
  unless keys.include?(key)
    raise KeyError,
          "Unknown option key '#{key}'"
  end
  !@sets.keys.include?(key)
end
inspect() click to toggle source
# File lib/bogo-cli/parser.rb, line 60
def inspect
  "<OptionValues: #{@sets.inspect} | #{@defaults.inspect}>"
end
is_a?(const) click to toggle source
Calls superclass method
# File lib/bogo-cli/parser.rb, line 64
def is_a?(const)
  super || composite.is_a?(const)
end
keys() click to toggle source
# File lib/bogo-cli/parser.rb, line 44
def keys
  @sets.keys | @defaults.keys
end
respond_to?(method) click to toggle source
Calls superclass method
# File lib/bogo-cli/parser.rb, line 68
def respond_to?(method)
  super || composite.respond_to?(method)
end
set_default(key, value) click to toggle source
# File lib/bogo-cli/parser.rb, line 38
def set_default(key, value)
  key = key.to_s.gsub("-", "_").to_sym
  @defaults[key] = value
  self
end
to_s() click to toggle source
# File lib/bogo-cli/parser.rb, line 56
def to_s
  "<OptionValues: #{composite.inspect}>"
end