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