lib/hashie/extensions/deep_find.rb in hashie-3.4.1 vs lib/hashie/extensions/deep_find.rb in hashie-3.4.2

- old
+ new

@@ -3,21 +3,39 @@ module DeepFind # Performs a depth-first search on deeply nested data structures for # a key and returns the first occurrence of the key. # # options = {user: {location: {address: '123 Street'}}} + # options.extend(Hashie::Extensions::DeepFind) # options.deep_find(:address) # => '123 Street' + # + # class MyHash < Hash + # include Hashie::Extensions::DeepFind + # end + # + # my_hash = MyHash.new + # my_hash[:user] = {location: {address: '123 Street'}} + # my_hash.deep_find(:address) # => '123 Street' def deep_find(key) _deep_find(key) end alias_method :deep_detect, :deep_find # Performs a depth-first search on deeply nested data structures for # a key and returns all occurrences of the key. # # options = {users: [{location: {address: '123 Street'}}, {location: {address: '234 Street'}}]} + # options.extend(Hashie::Extensions::DeepFind) # options.deep_find_all(:address) # => ['123 Street', '234 Street'] + # + # class MyHash < Hash + # include Hashie::Extensions::DeepFind + # end + # + # my_hash = MyHash.new + # my_hash[:users] = [{location: {address: '123 Street'}}, {location: {address: '234 Street'}}] + # my_hash.deep_find_all(:address) # => ['123 Street', '234 Street'] def deep_find_all(key) matches = _deep_find_all(key) matches.empty? ? nil : matches end