module CloudSesame::Query::DSL::LiteralChainingMethods

Public Instance Methods

begin_with(*values)
Alias for: prefix
insert(values = []) click to toggle source
# File lib/cloud_sesame/query/dsl/literal_chaining_methods.rb, line 34
def insert(values = [])
        values.each do |value|
                _scope << create_parents(build_literal(value))
        end
        parents.clear unless values.empty?
  _return != _scope ? _return : self
end
is_not(*values)
Alias for: not
near(*values) click to toggle source

NEAR

# File lib/cloud_sesame/query/dsl/literal_chaining_methods.rb, line 17
def near(*values)
        parents[0] = { klass: AST::Near, options: extract_options(values) }
  insert values
end
Also aliased as: sloppy
not(*values) click to toggle source

NOT

# File lib/cloud_sesame/query/dsl/literal_chaining_methods.rb, line 8
def not(*values)
        parents[1] = { klass: AST::Not, options: extract_options(values) }
  insert values
end
Also aliased as: is_not
prefix(*values) click to toggle source

PREFIX

# File lib/cloud_sesame/query/dsl/literal_chaining_methods.rb, line 26
def prefix(*values)
  parents[0] = { klass: AST::Prefix, options: extract_options(values) }
  insert values
end
Also aliased as: start_with, begin_with
sloppy(*values)
Alias for: near
start_with(*values)
Alias for: prefix

Private Instance Methods

build_literal(value) click to toggle source
# File lib/cloud_sesame/query/dsl/literal_chaining_methods.rb, line 57
def build_literal(value)
        if value.kind_of?(AST::Abstract::SingleExpressionOperator) || value.is_a?(AST::Literal)
                value.is_for field, _context[:fields][field]
                value
        else
                AST::Literal.new field, value, _context[:fields][field]
        end
end
create_parents(child) click to toggle source
# File lib/cloud_sesame/query/dsl/literal_chaining_methods.rb, line 48
def create_parents(child)
        parents.compact.each do |parent|
                node = parent[:klass].new _context, parent[:options]
                node << child
                child = node
        end
        child
end
extract_options(values) click to toggle source
# File lib/cloud_sesame/query/dsl/literal_chaining_methods.rb, line 44
def extract_options(values)
        values[-1].is_a?(Hash) ? values.delete_at(-1) : {}
end