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!"()
Alias for: build
"compile!"()
Alias for: compile
"prepare!"()
Alias for: prepare
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