class Hash
Private Class Methods
deep_find_loop(object, path, find_key)
click to toggle source
# File lib/ruby_extended/hash.rb, line 12 def self.deep_find_loop(object, path, find_key) found = [] if object.is_a?(Array) object.each_with_index do |sub_object, index| found << Hash.deep_find_loop(sub_object, path + [index], find_key) end elsif object.is_a?(Hash) object.keys.each do |key| found << {value: object[key], path: path + [key]} if key == find_key found << Hash.deep_find_loop(object[key], path + [key], find_key) end end found end
Public Instance Methods
deep_find(find_key)
click to toggle source
# File lib/ruby_extended/hash.rb, line 4 def deep_find(find_key) Hash.deep_find_loop(self, [], find_key).flatten end