Class: Lines::ActiveRecordSubscriber

Inherits:
ActiveSupport::LogSubscriber
  • Object
show all
Defined in:
lib/lines/active_record.rb

Instance Method Summary collapse

Instance Method Details

#identity(event) ⇒ Object



28
29
30
# File 'lib/lines/active_record.rb', line 28

def identity(event)
  Lines.log(name: event.payload[:name], line: event.payload[:line])
end

#loggerObject



32
# File 'lib/lines/active_record.rb', line 32

def logger; Lines.logger; end

#sql(event) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/lines/active_record.rb', line 6

def sql(event)
  payload = event.payload

  return if payload[:name] == 'SCHEMA'

  args = {}

  args[:name] = payload[:name] if payload[:name]
  args[:sql] = payload[:sql].squeeze(' ')

  if payload[:binds] && payload[:binds].any?
    args[:binds] = payload[:binds].inject({}) do |hash,(col, v)|
      hash[col.name] = v
      hash
    end
  end

  args[:elapsed] = [event.duration, 's']

  Lines.log(args)
end