17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
# File 'lib/store_complex.rb', line 17
def store_complex(store_name,*attr_names)
attr_names.each do |name|
attr_set = name.to_s+'='
define_method(name) do
value = (self.send(store_name) || {})[name.to_s]
ObservableObject::deep_wrap( StoreComplex::store_to_obj(value) ) { |obj| self.send(attr_set, obj) }
end
define_method(attr_set) do |value|
store = self.send(store_name) || {}
store[name.to_s] = StoreComplex::obj_to_store(value)
self.send(store_name.to_s+'=',store)
end
end
end
|