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