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
- Run specs via
rake
orbundle exec rspec
The name of this is inspired-by copied from github.com/vardars/dotize, a Javascript equivalent.