class DoesKeyValue::State
Attributes
classes[R]
keys[R]
Public Instance Methods
add_class(klass, opts={})
click to toggle source
Add support for a single class of objects:
# File lib/doeskeyvalue/state.rb, line 18 def add_class(klass, opts={}) DoesKeyValue.log("State: Add support for class #{klass.to_s} with opts:#{opts.inspect}") @classes ||= Hash.new @classes[klass.to_s] = opts end
add_key(klass, key_name, opts={})
click to toggle source
Add a key for a given class:
# File lib/doeskeyvalue/state.rb, line 25 def add_key(klass, key_name, opts={}) DoesKeyValue.log("State: Add key #{key_name} to class #{klass.to_s} with opts:#{opts.inspect}") @keys ||= Hash.new @keys[klass.to_s] ||= Array.new @keys[klass.to_s] << {name:key_name, options:opts} end
options_for_class(klass)
click to toggle source
Return the configuration for a given klass:
# File lib/doeskeyvalue/state.rb, line 33 def options_for_class(klass) DoesKeyValue.log("State: Querying options_for_class for class:#{klass.to_s}") @classes[klass.to_s] rescue {} end
options_for_key(klass, key_name)
click to toggle source
Return the list of keys for a given klass:
# File lib/doeskeyvalue/state.rb, line 39 def options_for_key(klass, key_name) DoesKeyValue.log("State: Querying options_for_key for class:#{klass.to_s} and key:#{key_name}") key_def = (@keys[klass.to_s] || Array.new).find{|x| x[:name]==key_name.to_sym} || {} opts = key_def[:options] end