module Api::Filters::Condition

Public Class Methods

included(base) click to toggle source
# File lib/api/filters/condition.rb, line 5
def self.included(base)
  base.extend(ClassMethods)
end
new(field, condition) click to toggle source
# File lib/api/filters/condition.rb, line 27
def initialize(field, condition)
  @field, @condition = field, condition
end

Public Instance Methods

build_param() click to toggle source
# File lib/api/filters/condition.rb, line 31
def build_param
  { "#{@field} #{self.class.condition_symbol} ?" => extract_param }
end

Protected Instance Methods

extract_amount(value) click to toggle source
# File lib/api/filters/condition.rb, line 45
def extract_amount(value)
  (value.to_f/100.0) if @field == "total_value"
end
extract_int(value) click to toggle source
# File lib/api/filters/condition.rb, line 49
def extract_int(value)
  value.to_i if !!(value =~ /^[-+]?[0-9]+$/)
end
extract_param() click to toggle source
# File lib/api/filters/condition.rb, line 36
def extract_param
  query_param = @condition.match(/\((.*)\)/)[1]
  get_value(query_param)
end
get_value(query_param) click to toggle source
# File lib/api/filters/condition.rb, line 41
def get_value(query_param)
  extract_amount(query_param) || extract_int(query_param) || query_param
end