Sha256: c9dc12fca4e90574aab79b21ccdaf78d304668696c5bb2511c94f8c4abe855fa
Contents?: true
Size: 1.05 KB
Versions: 3
Compression:
Stored size: 1.05 KB
Contents
module Dossier module Adapter class ActiveRecord attr_accessor :options, :connection def initialize(options = {}) self.options = options self.connection = options.delete(:connection) || active_record_connection end def escape(value) connection.quote(value) end def execute(query, report_name = nil) # Ensure that SQL logs show name of report generating query Result.new(connection.exec_query(*[query, report_name].compact)) rescue => e raise Dossier::ExecuteError.new "#{e.message}\n\n#{query}" end private 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 end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
dossier-2.7.1 | lib/dossier/adapter/active_record.rb |
dossier-2.7.0 | lib/dossier/adapter/active_record.rb |
dossier-2.6.0 | lib/dossier/adapter/active_record.rb |