class Setting
def self.all
[ Setting.new( 'key1' , 'val1' , 'desc1' ) ,
Setting.new( 'key2' , 'val2' , 'desc2' ) ,
Setting.new( 'key3' , 'val3' , 'desc3' )]
end
attr_accessor :key , :value , :description
def initialize( key , val , desc )
@key = key
@value = val
@description =desc
end
@@loaded_settings = Hash.new
Setting.all.each do |setting|
@@loaded_settings[ setting.key ] = {
:value => setting.value ,
:description => setting.description
}
end
def self.[]( key , key2=:value )
@@loaded_settings[key][key2]
end
def self.[]=( key , value )
@@loaded_settings[key][:value] = value
end
end
p Setting['key1']
p Setting['key1',:description]
puts
p Setting['key1'] = 'new value'
p Setting['key1']
puts
p Setting['key1',:value]
p Setting['key1',:description]