Sha256: 2a2ebc2ba5099c9c1934674a5c68b551652c8e4dec11d9ca6cf64af1013c45f3
Contents?: true
Size: 1.61 KB
Versions: 3
Compression:
Stored size: 1.61 KB
Contents
module BananaBits module Concerns module Hashable def remove_blank_values(collection) if collection.is_a?(Hash) collection.each_with_object({}) do |(k, v), new_hash| if v.empty? && v != false new_hash.delete(k) else if v.is_a?(Hash) new_hash[k] = remove_blank_values(v) elsif v.is_a?(Array) new_hash[k] = remove_blank_values_from_array!(v) else new_hash[k] = v unless collection.empty? end end end elsif collection.is_a?(Array) remove_blank_values_from_array(collection) end end def remove_blank_values!(collection) if collection.is_a?(Hash) collection.each_pair do |k, v| if (v.empty? && v != false) collection.delete(k) elsif v.is_a?(Hash) remove_blank_values!(v) collection.delete(k) if collection[k].nil? || collection[k].empty? elsif v.is_a?(Array) remove_blank_values_from_array!(v) end end elsif collection.is_a?(Array) remove_blank_values_from_array!(collection) end return collection end def remove_blank_values_from_array(arr) arr.map{|o| remove_blank_values(o)} end def remove_blank_values_from_array!(arr) arr.map{|o| remove_blank_values!(o)} end def symbolize_keys(collection) collection.inject({}){|result,(k,v)| result[k.to_sym] = v; result} end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
banana_bits-0.2.2 | lib/banana_bits/concerns/hashable.rb |
banana_bits-0.2.1 | lib/banana_bits/concerns/hashable.rb |
banana_bits-0.2.0 | lib/banana_bits/concerns/hashable.rb |