class Ansr::NestedOpenStructWithHashAccess
Attributes
nested_class[R]
Public Class Methods
new(klass, *args)
click to toggle source
Calls superclass method
# File lib/ansr/utils.rb, line 31 def initialize klass, *args @nested_class = klass hash = {} hashes_and_keys = args.flatten lazy_configs = hashes_and_keys.extract_options! args.each do |v| if v.is_a? Hash key = v.first value = v[key] hash[key] = nested_class.new value else hash[v] = nested_class.new end end lazy_configs.each do |k,v| hash[k] = nested_class.new v end super hash set_default_proc! end
Public Instance Methods
<<(key)
click to toggle source
# File lib/ansr/utils.rb, line 57 def << key @table[key] end
[]=(key, value)
click to toggle source
# File lib/ansr/utils.rb, line 61 def []=(key, value) if value.is_a? Hash send "#{key}=", nested_class.new(value) else send "#{key}=", value end end
marshal_dump()
click to toggle source
# File lib/ansr/utils.rb, line 69 def marshal_dump h = to_h.dup h.default = nil [nested_class, h] end
marshal_load(x)
click to toggle source
Calls superclass method
# File lib/ansr/utils.rb, line 76 def marshal_load x @nested_class = x.first super x.last set_default_proc! end
Private Instance Methods
set_default_proc!()
click to toggle source
# File lib/ansr/utils.rb, line 83 def set_default_proc! self.default_proc = lambda do |hash, key| hash[key] = self.nested_class.new end end