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