Module: HashFilter

Defined in:
lib/hashfilter.rb,
lib/hashfilter/version.rb

Constant Summary collapse

VERSION =
"0.0.4"

Class Method Summary collapse

Class Method Details

.drop(hash, filter) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/hashfilter.rb', line 18

def self.drop(hash, filter)
  Hash[hash.map do |k,v|
         if filter[k]
           if filter[k].is_a?(Hash)
             [k,self.drop(v, filter[k])]
           else
             nil
           end
         else
           [k,v]
         end
       end.compact]
end

.keep(hash, filter) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
# File 'lib/hashfilter.rb', line 6

def self.keep(hash, filter)
  Hash[hash.map do |k,v|
         if filter[k]
           if filter[k].is_a?(Hash)
             [k,self.keep(v, filter[k])]
           else
             [k, v]
           end
         end
       end.compact]
end