class Settings

Based on: mjijackson.com/2010/02/flexible-ruby-config-objects Authors: Michael Jackson, Haydn Ewers

Public Class Methods

new(data={}) click to toggle source
# File lib/settings.rb, line 5
def initialize(data={})
  @data = {}
  update!(data)
end

Public Instance Methods

[](key) click to toggle source
# File lib/settings.rb, line 16
def [](key)
  @data[key.to_sym] || @data[key.to_i]
end
[]=(key, value) click to toggle source
# File lib/settings.rb, line 20
def []=(key, value)
  if value.class == Hash
    @data[key.to_sym] = Settings.new(value)
  else
    @data[key.to_sym] = value
  end
end
method_missing(sym, *args) click to toggle source
# File lib/settings.rb, line 36
def method_missing(sym, *args)
  if sym.to_s =~ /(.+)=$/
    self[$1] = args.first
  else
    self[sym]
  end
end
to_hash() click to toggle source
# File lib/settings.rb, line 28
def to_hash
  @data.to_hash
end
to_s() click to toggle source
# File lib/settings.rb, line 32
def to_s
  @data.to_s
end
update!(data) click to toggle source
# File lib/settings.rb, line 10
def update!(data)
  data.each do |key, value|
    self[key] = value
  end
end