class Quickbooks::Util::QueryBuilder

Constants

VALUE_QUOTE

Public Class Methods

new() click to toggle source
# File lib/quickbooks/util/query_builder.rb, line 9
def initialize
end

Public Instance Methods

clause(field, operator, value) click to toggle source
# File lib/quickbooks/util/query_builder.rb, line 12
def clause(field, operator, value)
  value = case value
          when DateTime, Time
            value.iso8601
          when Date
            value.strftime('%Y-%m-%d')
          when Array
            value = value.map{|v| v.to_s.gsub("'", "\\\\'") }
          else
            # escape single quotes with an escaped backslash
            value = value.gsub("'", "\\\\'")
          end

  if operator.downcase == 'in' && value.is_a?(Array)
    value = value.map{|v| "#{VALUE_QUOTE}#{v}#{VALUE_QUOTE}"}
    "#{field} #{operator} (#{value.join(', ')})"
  else
    "#{field} #{operator} #{VALUE_QUOTE}#{value}#{VALUE_QUOTE}"
  end
end