module EpicHashCleaner
Constants
- VERSION
Public Instance Methods
blank?(value)
click to toggle source
blank? has different meaning depending on the class See github.com/rails/rails/blob/master/activesupport/lib/active_support/core_ext/object/blank.rb
we use directly blank?
if defined, if not we replicate the active support implementation for Object#blank?
rubocop:disable Style/DoubleNegation
# File lib/epic_hash_cleaner.rb, line 32 def blank?(value) return value.blank? if value.respond_to?(:blank?) value.respond_to?(:empty?) ? !!value.empty? : !value end
clean(hash)
click to toggle source
# File lib/epic_hash_cleaner.rb, line 6 def clean(hash) return {} if hash.nil? clean_hash(hash) end
clean_array(array)
click to toggle source
# File lib/epic_hash_cleaner.rb, line 15 def clean_array(array) array.delete_if { |v| clean_value(v) } end
clean_hash(hash)
click to toggle source
# File lib/epic_hash_cleaner.rb, line 11 def clean_hash(hash) hash.delete_if { |_, v| clean_value(v) } end
clean_value(value)
click to toggle source
# File lib/epic_hash_cleaner.rb, line 19 def clean_value(value) clean_hash(value) if value.is_a?(Hash) clean_array(value) if value.is_a?(Array) blank?(value) if value != false end