Class: Dbwatcher::Tracker

Inherits:
Object
  • Object
show all
Defined in:
lib/dbwatcher/tracker.rb

Class Method Summary collapse

Class Method Details

.current_sessionObject



19
20
21
# File 'lib/dbwatcher/tracker.rb', line 19

def current_session
  Thread.current[:dbwatcher_session]
end

.record_change(change) ⇒ Object



23
24
25
26
27
28
29
30
# File 'lib/dbwatcher/tracker.rb', line 23

def record_change(change)
  session = current_session
  return unless session && change.is_a?(Hash)

  session.changes << change
rescue StandardError => e
  warn "Failed to record change: #{e.message}"
end

.track(name: nil, metadata: {}, &block) ⇒ Object



8
9
10
11
12
13
14
15
16
17
# File 'lib/dbwatcher/tracker.rb', line 8

def track(name: nil, metadata: {}, &block)
  return yield unless Dbwatcher.configuration.enabled

  session = create_session(name, )
  Thread.current[:dbwatcher_session] = session

  execute_with_session(session, &block)
ensure
  Thread.current[:dbwatcher_session] = nil
end