class Opbeat::Injections::Sequel::Injector

Constants

KIND

Public Class Methods

sql_parser() click to toggle source
# File lib/opbeat/injections/sequel.rb, line 7
def self.sql_parser
  @sql_parser ||= SqlSummarizer.new(nil)
end

Public Instance Methods

install() click to toggle source
# File lib/opbeat/injections/sequel.rb, line 11
        def install
          require 'sequel/database/logging'

          log_method = ::Sequel::Database.method_defined?(:log_connection_yield) ?
            'log_connection_yield' : 'log_yield'

          ::Sequel::Database.class_eval <<-end_eval
            alias #{log_method}_without_opb #{log_method}

            def #{log_method} sql, *args, &block
              #{log_method}_without_opb(sql, *args) do
                sig = Opbeat::Injections::Sequel::Injector.sql_parser.signature_for(sql)
                Opbeat.trace(sig, KIND, sql: sql) do
                  block.call
                end
              end
            end
          end_eval
        end