module TheWhere::Range
Constants
- PATTERN
Public Instance Methods
filter_range(params)
click to toggle source
# File lib/the_where/range.rb, line 39 def filter_range(params) params.select do |k, _| k.end_with?(*PATTERN.keys) end end
range_scope(params)
click to toggle source
# File lib/the_where/range.rb, line 11 def range_scope(params) where_string = [] where_hash = {} PATTERN.each do |char, sign| options = params.select{ |key, _| key.end_with?(char) } options.each do |key, value| exp = Regexp.new(char + '$') real_key = key.sub(exp, '') agent_key = key.gsub(/[-\.]/, '_') where_string << "#{real_key} #{sign} :#{agent_key}" where_hash.merge! agent_key.to_sym => value end end where_string = where_string.join ' AND ' if where_string.present? condition = [where_string, where_hash] where(condition) else all end end