class Dossier::Adapter::ActiveRecord
Attributes
connection[RW]
options[RW]
Public Class Methods
new(options = {})
click to toggle source
# File lib/dossier/adapter/active_record.rb, line 7 def initialize(options = {}) self.options = options self.connection = options.delete(:connection) || active_record_connection end
Private Class Methods
name()
click to toggle source
Needs a unique name for ActiveRecord’s connection pool
# File lib/dossier/adapter/active_record.rb, line 30 def self.name "Dossier::Adapter::ActiveRecord::Connection_#{object_id}" end
Public Instance Methods
escape(value)
click to toggle source
# File lib/dossier/adapter/active_record.rb, line 12 def escape(value) connection.quote(value) end
execute(query, report_name = nil)
click to toggle source
# File lib/dossier/adapter/active_record.rb, line 16 def execute(query, report_name = nil) # Ensure that SQL logs show name of report generating query Result.new(connection.exec_query(*["\n#{query}", report_name].compact)) rescue => e raise Dossier::ExecuteError.new "#{e.message}\n\n#{query}" end
Private Instance Methods
active_record_connection()
click to toggle source
# File lib/dossier/adapter/active_record.rb, line 25 def active_record_connection @abstract_class = Class.new(::ActiveRecord::Base) do self.abstract_class = true # Needs a unique name for ActiveRecord's connection pool def self.name "Dossier::Adapter::ActiveRecord::Connection_#{object_id}" end end @abstract_class.establish_connection(options) @abstract_class.connection end