Sha256: 1afac01b4ce0115e286e95dabb03c6f5f1e520f5f48ef46466c43b0b486cfb47

Contents?: true

Size: 735 Bytes

Versions: 6

Compression:

Stored size: 735 Bytes

Contents

module Vx
  module Instrumentation
    class ActiveRecord < Subscriber

      event(/\.active_record$/)

      def process
        self.payload = {
          sql:      payload[:sql].gsub("\n", ' ').gsub(/ +/, ' ').strip,
          binds:    render_binds,
          name:     payload[:name],
          duration: payload[:duration]
        }
      end

      private

        def render_binds
          (payload[:binds] || []).map do |column, value|
            if column
              if column.binary?
                value = "<#{value.bytesize} bytes of binary data>"
              end
              [column.name, value]
            else
              [nil, value]
            end
          end.inspect
        end

    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
vx-instrumentation-0.0.8 lib/vx/instrumentation/active_record.rb
vx-instrumentation-0.0.7 lib/vx/instrumentation/active_record.rb
vx-instrumentation-0.0.6 lib/vx/instrumentation/active_record.rb
vx-instrumentation-0.0.5 lib/vx/instrumentation/active_record.rb
vx-instrumentation-0.0.4 lib/vx/instrumentation/active_record.rb
vx-instrumentation-0.0.3 lib/vx/instrumentation/active_record.rb