class AgnosticBackend::Queryable::Cloudsearch::Visitor

Private Instance Methods

visit_attribute(subject) click to toggle source
# File lib/agnostic_backend/queryable/cloudsearch/visitor.rb, line 116
def visit_attribute(subject)
  subject.name.split('.').join('__')
end
visit_criteria_contains(subject) click to toggle source
# File lib/agnostic_backend/queryable/cloudsearch/visitor.rb, line 48
def visit_criteria_contains(subject)
  "(phrase field=#{visit(subject.attribute)} #{visit(subject.value)})"
end
visit_criteria_equal(subject) click to toggle source
# File lib/agnostic_backend/queryable/cloudsearch/visitor.rb, line 8
def visit_criteria_equal(subject)
  "(term field=#{visit(subject.attribute)} #{visit(subject.value)})"
end
visit_criteria_free_text(subject) click to toggle source
# File lib/agnostic_backend/queryable/cloudsearch/visitor.rb, line 56
def visit_criteria_free_text(subject)
  if subject.attribute.any?
    "(and #{visit(subject.value)})"
  else
    "(and #{visit(subject.attribute)}: #{visit(subject.value)})"
  end
end
visit_criteria_greater(subject) click to toggle source
# File lib/agnostic_backend/queryable/cloudsearch/visitor.rb, line 16
def visit_criteria_greater(subject)
  "(range field=#{visit(subject.attribute)} {#{visit(subject.value)},})"
end
visit_criteria_greater_and_less(subject) click to toggle source
# File lib/agnostic_backend/queryable/cloudsearch/visitor.rb, line 32
def visit_criteria_greater_and_less(subject)
  "(range field=#{visit(subject.attribute)} {#{visit(subject.left_value)},#{visit(subject.right_value)}})"
end
visit_criteria_greater_and_less_equal(subject) click to toggle source
# File lib/agnostic_backend/queryable/cloudsearch/visitor.rb, line 40
def visit_criteria_greater_and_less_equal(subject)
  "(range field=#{visit(subject.attribute)} {#{visit(subject.left_value)},#{visit(subject.right_value)}])"
end
visit_criteria_greater_equal(subject) click to toggle source
# File lib/agnostic_backend/queryable/cloudsearch/visitor.rb, line 24
def visit_criteria_greater_equal(subject)
  "(range field=#{visit(subject.attribute)} [#{visit(subject.value)},})"
end
visit_criteria_greater_equal_and_less(subject) click to toggle source
# File lib/agnostic_backend/queryable/cloudsearch/visitor.rb, line 36
def visit_criteria_greater_equal_and_less(subject)
  "(range field=#{visit(subject.attribute)} [#{visit(subject.left_value)},#{visit(subject.right_value)}})"
end
visit_criteria_greater_equal_and_less_equal(subject) click to toggle source
# File lib/agnostic_backend/queryable/cloudsearch/visitor.rb, line 44
def visit_criteria_greater_equal_and_less_equal(subject)
  "(range field=#{visit(subject.attribute)} [#{visit(subject.left_value)},#{visit(subject.right_value)}])"
end
visit_criteria_less(subject) click to toggle source
# File lib/agnostic_backend/queryable/cloudsearch/visitor.rb, line 20
def visit_criteria_less(subject)
  "(range field=#{visit(subject.attribute)} {,#{visit(subject.value)}})"
end
visit_criteria_less_equal(subject) click to toggle source
# File lib/agnostic_backend/queryable/cloudsearch/visitor.rb, line 28
def visit_criteria_less_equal(subject)
  "(range field=#{visit(subject.attribute)} {,#{visit(subject.value)}])"
end
visit_criteria_not_equal(subject) click to toggle source
# File lib/agnostic_backend/queryable/cloudsearch/visitor.rb, line 12
def visit_criteria_not_equal(subject)
  "(not term field=#{visit(subject.attribute)} #{visit(subject.value)})"
end
visit_criteria_starts(subject) click to toggle source
# File lib/agnostic_backend/queryable/cloudsearch/visitor.rb, line 52
def visit_criteria_starts(subject)
  "(prefix field=#{visit(subject.attribute)} #{visit(subject.value)})"
end
visit_expressions_filter(subject) click to toggle source
# File lib/agnostic_backend/queryable/cloudsearch/visitor.rb, line 92
def visit_expressions_filter(subject)
  visit(subject.criterion)
end
visit_expressions_limit(subject) click to toggle source
# File lib/agnostic_backend/queryable/cloudsearch/visitor.rb, line 104
def visit_expressions_limit(subject)
  visit(subject.limit) #size=
end
visit_expressions_offset(subject) click to toggle source
# File lib/agnostic_backend/queryable/cloudsearch/visitor.rb, line 108
def visit_expressions_offset(subject)
  visit(subject.offset) #offset=
end
visit_expressions_order(subject) click to toggle source
# File lib/agnostic_backend/queryable/cloudsearch/visitor.rb, line 100
def visit_expressions_order(subject)
  "#{subject.qualifiers.map{|c| visit(c)}.join(',')}" #sort=
end
visit_expressions_scroll_cursor(subject) click to toggle source
# File lib/agnostic_backend/queryable/cloudsearch/visitor.rb, line 112
def visit_expressions_scroll_cursor(subject)
  visit(subject.scroll_cursor)  #cursor=
end
visit_expressions_select(subject) click to toggle source
# File lib/agnostic_backend/queryable/cloudsearch/visitor.rb, line 96
def visit_expressions_select(subject)
  "#{subject.projections.map{|c| visit(c)}.join(',')}" #return=
end
visit_expressions_where(subject) click to toggle source
# File lib/agnostic_backend/queryable/cloudsearch/visitor.rb, line 88
def visit_expressions_where(subject)
  visit(subject.criterion) #search?q=
end
visit_operations_and(subject) click to toggle source
# File lib/agnostic_backend/queryable/cloudsearch/visitor.rb, line 68
def visit_operations_and(subject)
  "(and #{subject.operands.map{|o| visit(o)}.join(' ')})"
end
visit_operations_ascending(subject) click to toggle source
# File lib/agnostic_backend/queryable/cloudsearch/visitor.rb, line 76
def visit_operations_ascending(subject)
  "#{visit(subject.attribute)} asc"
end
visit_operations_descending(subject) click to toggle source
# File lib/agnostic_backend/queryable/cloudsearch/visitor.rb, line 80
def visit_operations_descending(subject)
  "#{visit(subject.attribute)} desc"
end
visit_operations_not(subject) click to toggle source
# File lib/agnostic_backend/queryable/cloudsearch/visitor.rb, line 64
def visit_operations_not(subject)
  "(not #{visit(subject.operand)})"
end
visit_operations_or(subject) click to toggle source
# File lib/agnostic_backend/queryable/cloudsearch/visitor.rb, line 72
def visit_operations_or(subject)
  "(or #{subject.operands.map{|o| visit(o)}.join(' ')})"
end
visit_query(subject) click to toggle source
# File lib/agnostic_backend/queryable/cloudsearch/visitor.rb, line 84
def visit_query(subject)
  "#{subject.children.map{|c| visit(c)}.join(' ')}"
end
visit_value(subject) click to toggle source
# File lib/agnostic_backend/queryable/cloudsearch/visitor.rb, line 120
def visit_value(subject)
  case subject.type
  when :integer
    subject.value
  when :date,:date_array
    "'#{subject.value.utc.strftime("%Y-%m-%dT%H:%M:%SZ")}'"
  when :double
    subject.value
  when :boolean
    "'#{subject.value}'"
  when :string,:string_array,:text,:text_array
    "'#{subject.value}'"
  else
    subject.value
  end
end