module CloudSesame::Query::DSL::LiteralChainingMethods
Public Instance Methods
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
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
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