class FluentQuery::Query
Represents single query.
Attributes
stack[R]
Public Class Methods
new(connection)
click to toggle source
Initializes query.
Calls superclass method
FluentQuery::Queries::Abstract::new
# File lib/fluent-query/query.rb, line 28 def initialize(connection) super(connection) @stack = [ ] end
Public Instance Methods
build()
click to toggle source
Builds the query.
# File lib/fluent-query/query.rb, line 88 def build @connection.driver.build_query(self) end
Also aliased as: "build!"
compile()
click to toggle source
Compiles query. Returns compiled query object.
# File lib/fluent-query/query.rb, line 100 def compile FluentQuery::Queries::Compiled::new(@connection, self) end
Also aliased as: "compile!"
method_missing(sym, *args, &block)
click to toggle source
Catches missing methods calls. Converts them to tokens.
# File lib/fluent-query/query.rb, line 38 def method_missing(sym, *args, &block) driver = @connection.driver _sym, args = driver.correct_token(sym, args) # p [sym, args] self.push_token(_sym, args) conditionally = driver.check_conditionally(self, sym, *args, &block) if not conditionally.nil? result = conditionally else result = self end return result end
prepare()
click to toggle source
Prepares query. Returns prepared query object.
# File lib/fluent-query/query.rb, line 112 def prepare FluentQuery::Queries::Prepared::new(@connection, self) end
Also aliased as: "prepare!"
push_token(name, arguments)
click to toggle source
Pushes new token according to specified arguments to the stack.
# File lib/fluent-query/query.rb, line 59 def push_token(name, arguments) @stack << FluentQuery::Token::new(name, arguments) end
query(*args)
click to toggle source
Pushes raw token to the query, so free unassociated query string.
# File lib/fluent-query/query.rb, line 68 def query(*args) @stack << FluentQuery::Tokens::Raw::new(args) return self end
type()
click to toggle source
Returns type of the query, so name of the first token in the stack.
# File lib/fluent-query/query.rb, line 79 def type self.stack.first.name.to_sym end