module MongoidHashQuery::FieldFilters
Public Instance Methods
filter_array(resource, field, param)
click to toggle source
# File lib/mongoid_hash_query/field_filters.rb, line 6 def filter_array(resource, field, param) return resource end
filter_big_decimal(resource, field, param)
click to toggle source
# File lib/mongoid_hash_query/field_filters.rb, line 10 def filter_big_decimal(resource, field, param) return filter_integer(resource, field, param) end
filter_boolean(resource, field, param)
click to toggle source
# File lib/mongoid_hash_query/field_filters.rb, line 14 def filter_boolean(resource, field, param) return resource.where(field => param) end
filter_date(resource, field, param)
click to toggle source
# File lib/mongoid_hash_query/field_filters.rb, line 18 def filter_date(resource, field, param) return filter_time(resource, field, param) end
filter_date_time(resource, field, param)
click to toggle source
# File lib/mongoid_hash_query/field_filters.rb, line 22 def filter_date_time(resource, field, param) return filter_time(resource, field, param) end
filter_float(resource, field, param)
click to toggle source
# File lib/mongoid_hash_query/field_filters.rb, line 26 def filter_float(resource, field, param) return filter_integer(resource, field, param) end
filter_hash(resource, field, param)
click to toggle source
# File lib/mongoid_hash_query/field_filters.rb, line 30 def filter_hash(resource, field, param) param.each do |k, v| if v.is_a?(Hash) && v[:regex] resource = resource.where("#{field}.#{k}" => Regexp.new(v[:value], v[:ignore_case])) else resource = resource.where("#{field}.#{k}" => v) end end return resource end
filter_integer(resource, field, param)
click to toggle source
# File lib/mongoid_hash_query/field_filters.rb, line 42 def filter_integer(resource, field, param) if !param.is_a? Hash return resource.where(column => param) else return apply_leq_geq_le_ge_filters(resource, field, param) end end
filter_primary(resource, field, param)
click to toggle source
# File lib/mongoid_hash_query/field_filters.rb, line 2 def filter_primary(resource, field, param) resource = resource.where(id: param) end
filter_string(resource, field, param)
click to toggle source
# File lib/mongoid_hash_query/field_filters.rb, line 50 def filter_string(resource, field, param) return resource.where(field => param) end
filter_symbol(resource, field, param)
click to toggle source
# File lib/mongoid_hash_query/field_filters.rb, line 54 def filter_symbol(resource, field, param) return resource.where(field => param) end
filter_time(resource, field, param)
click to toggle source
# File lib/mongoid_hash_query/field_filters.rb, line 58 def filter_time(resource, field, param) if !param.is_a? Hash return resource.where(field => param) else return apply_leq_geq_le_ge_filters(resource, field, param) end end
Private Instance Methods
apply_leq_geq_le_ge_filters(resource, field, param)
click to toggle source
# File lib/mongoid_hash_query/field_filters.rb, line 67 def apply_leq_geq_le_ge_filters(resource, field, param) if param[:lte] resource = resource.where(field.to_sym.lte => param[:lte]) elsif param[:lt] resource = resource.where(field.to_sym.lt => param[:lt]) end if param[:gte] resource = resource.where(field.to_sym.gte => param[:gte]) elsif param[:gt] resource = resource.where(field.to_sym.gt => param[:gt]) end return resource end