Dotize
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') # => 123If a value isn't found, nil is returned by default:
my_hash.dot('a.b.z.z.z') # => nilYou can provide a block to override the default, like Ruby's Hash#fetch:
my_hash.dot('a.b.z.z.z') { |el| 2 + 2 } # => 4Development
- Run specs via
rakeorbundle exec rspec
Credits
The name of this is inspired-by copied from github.com/vardars/dotize, a Javascript equivalent.