DsHash

A Ruby Hash class extensions.

Install

gem install ds_hash

Learning by example

Hash.deep_key?

hash = { :a => { :b => 'b' } }
hash.deep_key? :a, :b    # return true
hash.deep_key? :a, :x    # return false

Hash.deep_fetch

hash = { :a => { :b => 'hello' } }
hash.deep_fetch :a, :b    # return 'hello'
hash.deep_fetch :a, :x    # return nil

Hash.deep_dup

hash = { :a => { :b => 'b' } }
dup  = hash.deep_dup           # Returns a deep copy of hash (like rails active support)
dup[:a][:c] = 'c'

hash[:a][:c] #=> nil
dup[:a][:c]  #=> "c"

Hash.to_struct

hash = { :a => { :b => 'hello' } }
struct  = hash.to_struct     # Returns a nested struct
puts struct.a                #  { :b => 'hello' }
puts struct.a.b              # 'hello'

Hash.compact

{ a: 1, b: nil }.compact == { a: 1 }  # remove nil values

Hash.compact!

vide Hash.compact

Hash.clean

idem Hash.compact

Hash.clean!

idem Hash.compact!

Contributing to ds_hash

Copyright © 2013 nardele salomon. See LICENSE.txt for further details.