Skip to content

Commit

Permalink
Update the ActiveRecord log subscriber to work with AR 4.0.0
Browse files Browse the repository at this point in the history
  • Loading branch information
Jonas Pfenniger committed Jul 10, 2013
1 parent 1c524d5 commit 55ee68d
Showing 1 changed file with 16 additions and 3 deletions.
19 changes: 16 additions & 3 deletions lib/lines/active_record.rb
Original file line number Diff line number Diff line change
@@ -3,10 +3,22 @@

module Lines
class ActiveRecordSubscriber < ActiveSupport::LogSubscriber
def render_bind(column, value)
if column
if column.binary?
value = "<#{value.bytesize} bytes of binary data>"
end

[column.name, value]
else
[nil, value]
end
end

def sql(event)
payload = event.payload

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

args = {}

@@ -15,12 +27,13 @@ def sql(event)

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

args[:elapsed] = [event.duration, 's']
args[:elapsed] = [event.duration.round(1), 'ms']

Lines.log(args)
end

0 comments on commit 55ee68d

Please sign in to comment.