class FluentQuery::Drivers::DBI::Prepared

DBI prepared query.

Public Class Methods

new(driver, query) click to toggle source

Constructor.

# File lib/fluent-query/drivers/dbi/prepared.rb, line 47
def initialize(driver, query)
    @driver = driver
    @query = query
end

Public Instance Methods

execute(*args) click to toggle source

Executes the query.

# File lib/fluent-query/drivers/dbi/prepared.rb, line 96
def execute(*args)
    self.native.execute(*args)
    self.native
end
matcher() click to toggle source

Returns directives matcher.

# File lib/fluent-query/drivers/dbi/prepared.rb, line 56
def matcher
    if @@matcher.nil?
        directives = FluentQuery::Compiler::FORMATTING_DIRECTIVES.map { |s| s.to_s }
        @@matcher = Regexp::new("%%(?:" << directives.join("|") << ")(?:([^\w])|$)")
    end
    
    @@matcher
end
native() click to toggle source

Returns prepared query in the native form.

# File lib/fluent-query/drivers/dbi/prepared.rb, line 83
def native
    if @native.nil?
        @native = @driver.native_connection.prepare(self.prepared)
    end
    
    @native
end
prepared() click to toggle source

Returns prepared query form.

# File lib/fluent-query/drivers/dbi/prepared.rb, line 69
                def prepared
                    if @prepared.nil?
                        string = @driver.build_query(@query, :prepare)
                        string.gsub!(self.matcher, '?\1')
                        @prepared = string
                    end
#p @prepared
                    @prepared
                end