Class: Query

Inherits:
Object show all
Defined in:
lib/query.rb,
lib/query/node.rb,
lib/query/parser.rb,
lib/query/combiner.rb,
lib/query/node/key.rb,
lib/query/decompiler.rb,
lib/query/node/query.rb,
lib/query/node/range.rb,
lib/query/node/value.rb,
lib/query/parser/key.rb,
lib/query/node/base_2.rb,
lib/query/node/base_8.rb,
lib/query/node/number.rb,
lib/query/node/string.rb,
lib/query/parser/part.rb,
lib/query/node/base_10.rb,
lib/query/node/base_16.rb,
lib/query/node/boolean.rb,
lib/query/node/decimal.rb,
lib/query/parser/group.rb,
lib/query/parser/query.rb,
lib/query/parser/range.rb,
lib/query/parser/value.rb,
lib/query/node/operator.rb,
lib/query/parser/number.rb,
lib/query/parser/string.rb,
lib/query/node/key_value.rb,
lib/query/parser/boolean.rb,
lib/query/parser/special.rb,
lib/query/parser/operator.rb,
lib/query/parser/key_value.rb,
lib/query/parser/statement.rb,
lib/query/parser/whitespace.rb,
lib/query/parser/not_operator.rb,
lib/query/parser/logic_operator.rb

Defined Under Namespace

Classes: Combiner, Decompiler, Node, Parser

Constant Summary collapse

Version =
Gem::Version.new(File.read(File.expand_path("../../VERSION", __dir__)))

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(source) ⇒ Query

Returns a new instance of Query.



6
7
8
# File 'lib/query.rb', line 6

def initialize(source)
  self.source = source
end

Instance Attribute Details

#sourceObject

Returns the value of attribute source.



4
5
6
# File 'lib/query.rb', line 4

def source
  @source
end

Class Method Details

.combine(*sources) ⇒ Object



18
19
20
# File 'lib/query.rb', line 18

def self.combine(*sources)
  Combiner.combine(*sources)
end

.decompile(parsed) ⇒ Object



14
15
16
# File 'lib/query.rb', line 14

def self.decompile(parsed)
  Decompiler.decompile(parsed)
end

.evaluateObject



22
23
24
# File 'lib/query.rb', line 22

def self.evaluate(...)
  new(...).evaluate
end

.parse(source) ⇒ Object



10
11
12
# File 'lib/query.rb', line 10

def self.parse(source)
  Parser.parse(source).to_raw
end

Instance Method Details

#evaluateObject



26
27
28
# File 'lib/query.rb', line 26

def evaluate
  Node::Query.new(Query.parse(source)).evaluate
end