class FluentQuery::Queries::Abstract

Represents and abstract query.

Attributes

connection[R]

Public Class Methods

new(connection) click to toggle source

Constructor.

# File lib/fluent-query/queries/abstract.rb, line 32
def initialize(connection)
    @connection = connection
end

Public Instance Methods

"build!"(*args)
Alias for: build
"do!"(*args)
Alias for: do
"execute!"(*args)
Alias for: execute
all(*args) click to toggle source

Returns all selected rows.

# File lib/fluent-query/queries/abstract.rb, line 89
def all(*args)
    self.execute(*args).all
end
assoc(*specification, &block) click to toggle source

Returns all selected rows ordered according to datafield from it.

# File lib/fluent-query/queries/abstract.rb, line 108
def assoc(*specification, &block)
    self.execute.assoc(*specification, &block)
end
build(*args) click to toggle source

Builds prepared query string to final form.

# File lib/fluent-query/queries/abstract.rb, line 55
def build(*args)
    not_implemented
end
Also aliased as: "build!"
do(*args) click to toggle source

Executes query and returns count of changed/inserted rows.

# File lib/fluent-query/queries/abstract.rb, line 77
def do(*args)
    @connection.do(self.build(*args))
end
Also aliased as: "do!"
each(*args) { |item| ... } click to toggle source

Handles iterating.

# File lib/fluent-query/queries/abstract.rb, line 126
def each(*args)
    self.execute(*args).each do |item|
        yield item
    end
end
execute(*args) click to toggle source

Executes query and returns result object.

# File lib/fluent-query/queries/abstract.rb, line 66
def execute(*args)
    @connection.execute(self.build(*args))
end
Also aliased as: "execute!"
filter(*args, &block)
Alias for: find_all
find_all(*args, &block) click to toggle source

Returns only rows for which block is true.

# File lib/fluent-query/queries/abstract.rb, line 152
def find_all(*args, &block)
    result = [ ]

    self.each(*args) do |item|
        if block.call(item) === true
            result << block.call(item)
        end
    end

    return result
end
Also aliased as: filter
map(*args, &block) click to toggle source

Maps callback to array.

# File lib/fluent-query/queries/abstract.rb, line 137
def map(*args, &block)
    result = [ ]
    
    self.each(*args) do |item|
        result << block.call(item)
    end

    return result
end
one(*args) click to toggle source

Returns one row.

# File lib/fluent-query/queries/abstract.rb, line 99
def one(*args)
    self.execute(*args).one
end
processor() click to toggle source

Returns processor.

# File lib/fluent-query/queries/abstract.rb, line 41
def processor
    if not @processor
        driver = @connection.driver
        @processor = FluentQuery::Queries::Processor::new(driver)
    end
    
    return @processor
end
single(*args) click to toggle source

Returns first value of first row.

# File lib/fluent-query/queries/abstract.rb, line 117
def single(*args)
    self.execute(*args).single
end