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