class ConfigModule::ConfigOption

Public Class Methods

wrap(data) click to toggle source
# File lib/config_module/config_option.rb, line 7
def self.wrap data
  if data.is_a? Hash
    new data
  else
    data
  end
end

Public Instance Methods

[](name) click to toggle source
# File lib/config_module/config_option.rb, line 38
def [] name
  @table[name.to_sym]
end
each()
Alias for: each_pair
each_key() { |key| ... } click to toggle source
# File lib/config_module/config_option.rb, line 23
def each_key
  return to_enum(__method__) { @table.size } unless block_given?

  @table.each_key { |key| yield key }
  self
end
each_pair() { |pair| ... } click to toggle source
# File lib/config_module/config_option.rb, line 15
def each_pair
  return to_enum(__method__) { @table.size } unless block_given?

  @table.each_pair { |pair| yield pair }
  self
end
Also aliased as: each
each_value() { |value| ... } click to toggle source
# File lib/config_module/config_option.rb, line 30
def each_value
  return to_enum(__method__) { @table.size } unless block_given?

  @table.each_value { |value| yield value }
  self
end
has_key?(key) click to toggle source
# File lib/config_module/config_option.rb, line 43
def has_key? key
  @table.has_key? key.to_sym
end
Also aliased as: key?
key?(key)
Alias for: has_key?
method_missing(name, *args, &block) click to toggle source
Calls superclass method
# File lib/config_module/config_option.rb, line 48
def method_missing name, *args, &block
  result = super

  if result || @table.has_key?(name)
    self.class.wrap result
  else
    raise(
      ConfigOption::NotFoundError.new(name, self, caller),
      "Key not found: #{name}", caller(3)
    )
  end
rescue NoMethodError => error
  raise(
    ConfigOption::NotFoundError.new(name, self, error),
    error.message, caller(3)
  )
end
new_ostruct_member(name)
Alias for: new_ostruct_member!
new_ostruct_member!(name) click to toggle source

:reek: TooManyStatements { max_statements: 10 }

# File lib/config_module/config_option.rb, line 73
def new_ostruct_member! name
  name = name.to_sym
  unless singleton_class.method_defined? name
    define_singleton_method(name) { self.class.wrap @table[name] }
    define_singleton_method("#{name}=") { |val| modifiable[name] = val }
  end
  name
end
Also aliased as: new_ostruct_member

Private Instance Methods

respond_to_missing?(name, include_all) click to toggle source
Calls superclass method
# File lib/config_module/config_option.rb, line 66
def respond_to_missing? name, include_all
  @table.has_key?(name) || super
end