Module: Sqlogger::Monkey::IncludeActiveRecordLogSubscriber

Defined in:
lib/sqlogger/monkey/include_active_record_log_subscriber.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



4
5
6
7
8
9
# File 'lib/sqlogger/monkey/include_active_record_log_subscriber.rb', line 4

def self.included base
  base.class_eval do
    alias_method :sql_without_sqlogger, :sql
    alias_method :sql, :sql_with_sqlogger
  end
end

Instance Method Details

#sql_with_sqlogger(event) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/sqlogger/monkey/include_active_record_log_subscriber.rb', line 11

def sql_with_sqlogger event
  sql_without_sqlogger event

  payload = event.payload
  binds   = ""
  unless (payload[:binds] || []).empty?
    casted_params = sqlogger_type_casted_binds payload[:binds], payload[:type_casted_binds]
    binds = "  " + payload[:binds].zip(casted_params).map { |attr, value|
      sqlogger_render_bind attr, value
    }.inspect
  end
  Sqlogger::Base::logger(
    sql: payload[:sql],
    binds: binds,
    dulation: event.duration.round(1),
    name: "#{"CACHE " if payload[:cached]}#{payload[:name]}"
  )
end