class NativeQuery::Result

Represents ORM query result.

Attributes

query[R]

Public Class Methods

new(query) click to toggle source

Constructor.

# File lib/native-query/result.rb, line 23
def initialize(query)
    @query = query
end

Public Instance Methods

all() click to toggle source

Returns all rows.

# File lib/native-query/result.rb, line 59
def all
    self.map { |row| row }
end
assoc(*args, &block) click to toggle source

Returns data in complex associative level.

According to limitations of equivalent MP::Fluent method. Block is applied to all resultant rows.

# File lib/native-query/result.rb, line 70
def assoc(*args, &block)
    @query.assoc(*args) do |row|
        result = Row::new(row)
        
        if block
            result = block.call(result)
        end
        
        result  # returns
    end
end
count() click to toggle source

Returns count of the records.

# File lib/native-query/result.rb, line 86
def count
    @query.count
end
each() { |new(row)| ... } click to toggle source

Iterates through result.

# File lib/native-query/result.rb, line 47
def each
    @query.each do |row|
        yield Row::new(row)
    end
    
    self.free!
end
free!() click to toggle source

Frees result resources.

# File lib/native-query/result.rb, line 108
def free!
    @query.free!
end
map(&block) click to toggle source

Maps callback to array.

# File lib/native-query/result.rb, line 94
def map(&block)
    result = [ ]
    
    self.each do |item|
        result << block.call(item)
    end
    
    return result
end
one() click to toggle source

Returns one result row.

# File lib/native-query/result.rb, line 39
def one
    Row::new(@query.one)
end
single() click to toggle source

Returns first field value of first record.

# File lib/native-query/result.rb, line 31
def single
    @query.single
end