class QuerySyntax::Query

Attributes

ignore_failure[RW]
index[R]

Public Class Methods

new(index) click to toggle source
Calls superclass method
# File lib/query_syntax/query.rb, line 6
def initialize(index)
  super "AND"
  @index = index
  @ignore_failure = true
end

Public Instance Methods

and(args={}) click to toggle source
# File lib/query_syntax/query.rb, line 39
def and(args={})
  scope = spawn("AND")
  scope.and!(args)
end
each(&block) click to toggle source
# File lib/query_syntax/query.rb, line 75
def each(&block)
  search(&block)
end
encode() click to toggle source

Search related methods

# File lib/query_syntax/query.rb, line 52
def encode
  URI.escape(to_s, Regexp.new("[^#{URI::PATTERN::UNRESERVED}]"))
end
not(args={}) click to toggle source
# File lib/query_syntax/query.rb, line 34
def not(args={})
  scope = spawn("NOT")
  scope.not!(args)
end
or(args={}) click to toggle source
# File lib/query_syntax/query.rb, line 44
def or(args={})
  scope = spawn("OR")
  scope.or!(args)
end
partial(keys, &block) click to toggle source
# File lib/query_syntax/query.rb, line 70
def partial(keys, &block)
  keys = Hash[keys.map { |k,v| [k,Array(v)] }]
  search(filter_result: keys, &block)
end
spawn(operator="AND") click to toggle source

Spawn! returns a clone to continue processing without mucking self

# File lib/query_syntax/query.rb, line 18
def spawn(operator="AND")
  scope = clone
  scope.scopes = scopes.clone
  scope.scope!(operator)
  scope
end
where(args={}) click to toggle source

Spawn a new scopes

# File lib/query_syntax/query.rb, line 29
def where(args={})
  scope = spawn("AND")
  scope.where!(args) if args
end