class Clearly::Query::Cleaner
Cleans a filter hash so it is ready to be built using the Composer
.
Public Class Methods
new()
click to toggle source
Create a cleaner for a filter hash. @return [Clearly::Query::Cleaner]
# File lib/clearly/query/cleaner.rb, line 9 def initialize self end
Public Instance Methods
do(hash)
click to toggle source
Get the cleaned filter hash. @param [Hash] hash @return [Hash]
# File lib/clearly/query/cleaner.rb, line 16 def do(hash) clean(hash) end
Private Instance Methods
clean(value)
click to toggle source
Clean an object. @param [Object] value @return [Object]
# File lib/clearly/query/cleaner.rb, line 25 def clean(value) if value.is_a?(Hash) clean_hash(value) elsif value.is_a?(Array) clean_array(value) else value end end
clean_array(array)
click to toggle source
Clean an array. @param [Array] array @return [Array]
# File lib/clearly/query/cleaner.rb, line 50 def clean_array(array) array.map { |item| clean(item) } end
clean_hash(hash)
click to toggle source
Clean a hash. @param [Hash] hash @return [Hash] Cleaned hash
# File lib/clearly/query/cleaner.rb, line 38 def clean_hash(hash) cleaned_hash = Hash.new hash.each do |key, value| new_key = clean_value(key) cleaned_hash[new_key] = clean(value) end cleaned_hash end
clean_value(value)
click to toggle source
Convert to a snake case symbol @param [Object] value @return [Symbol]
# File lib/clearly/query/cleaner.rb, line 57 def clean_value(value) value.to_s.underscore.to_sym end