Class: Hash

Inherits:
Object
  • Object
show all
Defined in:
lib/promoted/ruby/client/extensions.rb

Instance Method Summary collapse

Instance Method Details

#clean!Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/promoted/ruby/client/extensions.rb', line 14

def clean!
  self.delete_if do |key, val|
    if block_given?
        yield(key,val)
    else
      # checks for empty/blank values
      nil_value       = val.nil?
      falsy           = val === false
      is_empty        = val.empty? if val.respond_to?('empty?')
      is_empty_string = val.strip.empty? if val.is_a?(String) && val.respond_to?('empty?')

      # Were any of the checks true
      nil_value || falsy || is_empty || is_empty_string
    end
  end

  self.each do |key, val|
    if self[key].is_a?(Hash) && self[key].respond_to?('clean!')
      if block_given?
        self[key] = self[key].clean!(&Proc.new)
      else
        self[key] = self[key].clean!
      end
    end
  end
  return self
end