Skip to content
master
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
lib
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

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

About

easily fetch values from nested ruby hashes

Resources

License

Packages

No packages published

Languages

You can’t perform that action at this time.