Sha256: 615c8a5b0a9f3fb87625c43598face2455094e46da2ddf4b8f799fb1276dc08d
Contents?: true
Size: 1006 Bytes
Versions: 10
Compression:
Stored size: 1006 Bytes
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) 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
10 entries across 10 versions & 1 rubygems