6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
# File 'lib/active_tools/core_extension/method_digger.rb', line 6
def method_digger(tree, &block)
tree.stringify_keys!
tree.each do |method, value|
if method.last == "*"
method = method[0..-2]
cycle_call(method) do |nested|
yield self, method, nested, value
if value.is_a?(Hash) && !nested.nil?
nested.method_digger(value, &block)
end
end
else
response = try(:send, method)
yield self, method, response, value
if value.is_a?(Hash) && !response.nil?
response.method_digger(value, &block)
end
end
end
end
|