Project

deep_fetch

0.01
No commit activity in last 3 years
No release in over 3 years
easily fetch values from nested ruby hashes
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies
 Project Readme

deep_fetch

Build Status Coverage Status Dependency Status Gem Version

Easily fetch values from nested ruby hashes.

Installation

Add this line to your application's Gemfile:

gem 'deep_fetch'

And then execute:

bundle

How?

Let's say we have a big hash:

example = {
  :foo => {
    :bar => [ 'a', 'b', 'c' ],
    :baz => :boo
  }
}

We can fetch a value under :foo, :baz easily:

example.deep_fetch(:foo, :baz) # => :boo

If the key does not exist, we receive KeyError exception, just like using Hash#fetch

example.deep_fetch(:foo, :boo) # => KeyError: key not found: :boo

Specify a default value to be returned if key is missing in a block:

example.deep_fetch(:foo, :boo) { "not found" } # => "not found"

Lastly, if the hash contains nested array, we can get values from it by providing an integer:

example.deep_fetch(:foo, :bar, 1) # => 'b'

Why?

The gem might be useful when working with deeply nested hashes, e.g. API responses.

By using Hash#deep_fetch we can assert that the response contains the key, making it fail loud otherwise.

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request