class FluentQuery::Result

Represents result wrapper.

Public Class Methods

new(result) click to toggle source

Initializes result.

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

Public Instance Methods

all() click to toggle source

Returns all selected rows.

# File lib/fluent-query/result.rb, line 42
def all
    @_result.all
end
assoc(*specification, &block) click to toggle source

Returns data in complex associative level. Only two levels are currently supported.

# File lib/fluent-query/result.rb, line 70
def assoc(*specification, &block)

    if block.nil?
        block = Proc::new { |v| v }
    end
    
    specification.map! { |i| i.to_s }
    length = specification.length
    result = { }

    ##
    
    if length == 0
        raise FluentQuery::Exception::new("Specification must content at least one field name.")
    elsif length == 1
        key = specification.first
        
        self.each do |item|
            result[item[key]] = block.call(item)
        end
    else
        key_1, key_2 = specification
        
        self.each do |item|
            target_1 = item[key_1]
            target_2 = item[key_2]

            if not result[target_1]
                result[target_1] = { }
            end
            
            result[target_1][target_2] = block.call(item)
        end
    end
    
    return result
end
count() click to toggle source

Returns rows count.

# File lib/fluent-query/result.rb, line 132
def count
    @_result.count
end
each(&block) click to toggle source

Handles iterating.

# File lib/fluent-query/result.rb, line 113
def each(&block)
    @_result.each &block
    self.free!
end
finish!() click to toggle source

Finishes the result set. (Cleanups.)

# File lib/fluent-query/result.rb, line 33
def finish!
    @_result.free!
end
free!() click to toggle source

Frees result resources.

# File lib/fluent-query/result.rb, line 141
def free!
    @_result.free!
end
one() click to toggle source

Returns one row.

# File lib/fluent-query/result.rb, line 51
def one
    @_result.one
end
repeat!() click to toggle source

Repeats the query leaded to the result.

# File lib/fluent-query/result.rb, line 123
def repeat!
    @_result.repeat!
end
single() click to toggle source

Returns first value of first row.

# File lib/fluent-query/result.rb, line 60
def single
    @_result.single
end