Build Status

Berg

Find paths and values in complex Ruby hashes – much like css selectors.

Install

$ gem install berg

Example

require "berg"

data = { ... }
query = ".data[1].modules[2].content[-1].title.name"
value = "My value"

# Get query for #{item} in #{data}
result1 = Berg::Key.locate(data) do |leaf|
  leaf.to_s.include?(value)
end

# Get value from #{query}
result2 = Berg::Value.locate(data, query)