Class: Dossier::Adapter::ActiveRecord

Inherits:
Object
  • Object
show all
Defined in:
lib/dossier/adapter/active_record.rb,
lib/dossier/adapter/active_record/result.rb

Defined Under Namespace

Classes: Result

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ ActiveRecord

Returns a new instance of ActiveRecord.



7
8
9
10
# File 'lib/dossier/adapter/active_record.rb', line 7

def initialize(options = {})
  self.options    = options
  self.connection = options.delete(:connection) || active_record_connection
end

Instance Attribute Details

#connectionObject

Returns the value of attribute connection.



5
6
7
# File 'lib/dossier/adapter/active_record.rb', line 5

def connection
  @connection
end

#optionsObject

Returns the value of attribute options.



5
6
7
# File 'lib/dossier/adapter/active_record.rb', line 5

def options
  @options
end

Instance Method Details

#escape(value) ⇒ Object



12
13
14
# File 'lib/dossier/adapter/active_record.rb', line 12

def escape(value)
  connection.quote(value)
end

#execute(query, report_name = nil) ⇒ Object



16
17
18
19
20
21
# 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