Class: RESO::API::QueryFormatter

Inherits:
Object
  • Object
show all
Defined in:
lib/reso_api/app/models/reso/api/query_formatter.rb

Constant Summary collapse

OPERATOR_MAP =
{
  '>'  => 'gt',
  '>=' => 'ge',
  '<'  => 'lt',
  '<=' => 'le',
  '='  => 'eq',
  '!=' => 'ne'
}.freeze
OPERATOR_PATTERN =
/\s*(>=|<=|!=|>|<|=)\s*/

Class Method Summary collapse

Class Method Details

.format_value(value) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/reso_api/app/models/reso/api/query_formatter.rb', line 15

def self.format_value(value)
  case value
  when String         then "'#{value.gsub("'", "''")}'"
  when Integer        then value.to_s
  when Float          then value.to_s
  when Time, DateTime then value.utc.strftime('%Y-%m-%dT%H:%M:%SZ')
  when Date           then value.strftime('%Y-%m-%d')
  when TrueClass, FalseClass then value.to_s
  when NilClass       then 'null'
  else value.to_s
  end
end

.translate_operator(op) ⇒ Object



28
29
30
# File 'lib/reso_api/app/models/reso/api/query_formatter.rb', line 28

def self.translate_operator(op)
  OPERATOR_MAP[op.strip] || raise(ArgumentError, "Unknown operator: #{op}")
end