20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
# File 'lib/inherited-hash.rb', line 20
def inherited_hash_accessor *names
names.each do |name|
[self,class<<self;self;end].each do |context|
context.send(%Q{instance_eval}.to_s) do
define_method(name) do
inherited_hashes[name]
end
define_method(%Q{#{name}!}.to_sym) do
inherited_hashes[name].to_hash!
end
define_method(%Q{#{name}=}.to_sym) do |hsh|
raise ArgumentError, 'Only hashes are allowed' unless hsh.is_a? Hash
inherited_hashes[name].replace(hsh)
end
end
end
end
end
|