Module: NewRelic::Security::Instrumentation::SQLite3::Statement::Chain

Defined in:
lib/newrelic_security/instrumentation-security/sqlite3/chain.rb

Class Method Summary collapse

Class Method Details

.instrument!Object



45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# File 'lib/newrelic_security/instrumentation-security/sqlite3/chain.rb', line 45

def self.instrument!
  ::SQLite3::Statement.class_eval do
    include NewRelic::Security::Instrumentation::SQLite3::Statement

    alias_method :initialize_without_security, :initialize
    
    def initialize(db, sql)
      retval = nil
      event = initialize_on_enter(db, sql) { retval = initialize_without_security(db, sql) }
      initialize_on_exit(event, retval, sql) { return retval }
    end

    alias_method :bind_params_without_security, :bind_params

    def bind_params(*bind_vars)
      retval = nil
      event = bind_params_on_enter(*bind_vars) { retval = bind_params_without_security(*bind_vars) }
      bind_params_on_exit(event) { return retval }
    end

    alias_method :execute_without_security, :execute

    def execute(*bind_vars)
      retval = nil
      event = execute_on_enter(*bind_vars) { retval = execute_without_security(*bind_vars) }
      execute_on_exit(event) { return retval }
    end
    
  end
end