Dotize

Travis build status

Access values from a deeply-nested Hash using a simple string:

my_hash = {'a' => {'b' => {'c' => 123}}}
my_hash.extend(Dotize)
my_hash.dot('a.b.c') # => 123

If a value isn't found, nil is returned by default:

my_hash.dot('a.b.z.z.z') # => nil

You can provide a block to override the default, like Ruby's Hash#fetch:

my_hash.dot('a.b.z.z.z') { |el| 2 + 2 } # => 4

Development

  • Run specs via rake or bundle exec rspec

Credits

The name of this is ~~inspired-by~~ copied from github.com/vardars/dotize, a Javascript equivalent.