Class: HashWithIndifferentAccess
Instance Method Summary collapse
Instance Method Details
#&(keys) ⇒ Object
89 90 91 92 93 94 95 96 |
# File 'lib/hobo_support/hash.rb', line 89 def &(keys) res = HashWithIndifferentAccess.new keys.each do |k| k = k.to_s if k.is_a?(Symbol) res[k] = self[k] if has_key?(k) end res end |
#-(keys) ⇒ Object
82 83 84 85 86 87 |
# File 'lib/hobo_support/hash.rb', line 82 def -(keys) res = HashWithIndifferentAccess.new keys = keys.map {|k| k.is_a?(Symbol) ? k.to_s : k } each_pair { |k, v| res[k] = v unless k.in?(keys) } res end |
#partition_hash(keys = nil) ⇒ Object
98 99 100 101 102 103 104 105 106 107 108 109 110 |
# File 'lib/hobo_support/hash.rb', line 98 def partition_hash(keys=nil) keys = keys._?.map {|k| k.is_a?(Symbol) ? k.to_s : k } yes = HashWithIndifferentAccess.new no = HashWithIndifferentAccess.new each do |k,v| if block_given? ? yield(k,v) : keys.include?(k) yes[k] = v else no[k] = v end end [yes, no] end |