Module: TraceView::Inst::SequelDatabase

Includes:
Sequel
Defined in:
lib/traceview/inst/sequel.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Sequel

#exec_with_traceview, #extract_trace_details

Class Method Details

.included(klass) ⇒ Object



87
88
89
90
91
92
# File 'lib/traceview/inst/sequel.rb', line 87

def self.included(klass)
  ::TraceView::Util.method_alias(klass, :run, ::Sequel::Database)
  ::TraceView::Util.method_alias(klass, :execute_ddl, ::Sequel::Database)
  ::TraceView::Util.method_alias(klass, :execute_dui, ::Sequel::Database)
  ::TraceView::Util.method_alias(klass, :execute_insert, ::Sequel::Database)
end

Instance Method Details

#execute_ddl_with_traceview(sql, opts = ::Sequel::OPTS, &block) ⇒ Object



107
108
109
110
111
112
113
# File 'lib/traceview/inst/sequel.rb', line 107

def execute_ddl_with_traceview(sql, opts = ::Sequel::OPTS, &block)
  # If we're already tracing a sequel operation, then this call likely came
  # from Sequel::Dataset.  In this case, just pass it on.
  return execute_ddl_without_traceview(sql, opts, &block) if TraceView.tracing_layer?(:sequel)

  exec_with_traceview(:execute_ddl_without_traceview, sql, opts, &block)
end

#execute_dui_with_traceview(sql, opts = ::Sequel::OPTS, &block) ⇒ Object



115
116
117
118
119
120
121
# File 'lib/traceview/inst/sequel.rb', line 115

def execute_dui_with_traceview(sql, opts = ::Sequel::OPTS, &block)
  # If we're already tracing a sequel operation, then this call likely came
  # from Sequel::Dataset.  In this case, just pass it on.
  return execute_dui_without_traceview(sql, opts, &block) if TraceView.tracing_layer?(:sequel)

  exec_with_traceview(:execute_dui_without_traceview, sql, opts, &block)
end

#execute_insert_with_traceview(sql, opts = ::Sequel::OPTS, &block) ⇒ Object



123
124
125
126
127
128
129
# File 'lib/traceview/inst/sequel.rb', line 123

def execute_insert_with_traceview(sql, opts = ::Sequel::OPTS, &block)
  # If we're already tracing a sequel operation, then this call likely came
  # from Sequel::Dataset.  In this case, just pass it on.
  return execute_insert_without_traceview(sql, opts, &block) if TraceView.tracing_layer?(:sequel)

  exec_with_traceview(:execute_insert_without_traceview, sql, opts, &block)
end

#run_with_traceview(sql, opts = ::Sequel::OPTS) ⇒ Object



94
95
96
97
98
99
100
101
102
103
104
105
# File 'lib/traceview/inst/sequel.rb', line 94

def run_with_traceview(sql, opts = ::Sequel::OPTS)
  kvs = extract_trace_details(sql, opts)

  TraceView::API.log_entry(:sequel, kvs)

  run_without_traceview(sql, opts)
rescue => e
  TraceView::API.log_exception(:sequel, e)
  raise e
ensure
  TraceView::API.log_exit(:sequel)
end