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
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?')
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
|