Module: ActiveTools::CoreExtension::MethodDigger::ObjectExtension
- Defined in:
- lib/active_tools/core_extension/method_digger.rb
Instance Method Summary collapse
Instance Method Details
#cycle_call(method, &block) ⇒ Object
27 28 29 30 31 32 33 34 35 |
# File 'lib/active_tools/core_extension/method_digger.rb', line 27 def cycle_call(method, &block) object = self export = [] while object = object.try(method) yield object if block_given? export << object end export end |
#method_digger(tree, &block) ⇒ Object
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(method) yield self, method, response, value if value.is_a?(Hash) && !response.nil? response.method_digger(value, &block) end end end end |