Module: Determinator::Tracking
- Defined in:
- lib/determinator/tracking.rb,
lib/determinator/tracking/context.rb,
lib/determinator/tracking/request.rb,
lib/determinator/tracking/tracker.rb,
lib/determinator/tracking/determination.rb,
lib/determinator/tracking/rack/middleware.rb,
lib/determinator/tracking/sidekiq/middleware.rb
Defined Under Namespace
Modules: Rack, Sidekiq
Classes: Context, Determination, Request, Tracker
Class Method Summary
collapse
Class Method Details
.clear! ⇒ Object
23
24
25
|
# File 'lib/determinator/tracking.rb', line 23
def clear!
Thread.current[:determinator_tracker] = nil
end
|
.clear_hooks! ⇒ Object
56
57
58
59
|
# File 'lib/determinator/tracking.rb', line 56
def clear_hooks!
@on_request = nil
@get_context = nil
end
|
.context ⇒ Object
49
50
51
52
53
54
|
# File 'lib/determinator/tracking.rb', line 49
def context
return unless @get_context
@get_context.call
rescue
nil
end
|
.finish!(error:, **attributes) ⇒ Object
15
16
17
18
19
20
21
|
# File 'lib/determinator/tracking.rb', line 15
def finish!(error:, **attributes)
return false unless started?
request = instance.finish!(error: error, **attributes)
clear!
report(request)
request
end
|
.get_context(&block) ⇒ Object
45
46
47
|
# File 'lib/determinator/tracking.rb', line 45
def get_context(&block)
@get_context = block
end
|
.instance ⇒ Object
7
8
9
|
# File 'lib/determinator/tracking.rb', line 7
def instance
Thread.current[:determinator_tracker]
end
|
.on_request(&block) ⇒ Object
36
37
38
|
# File 'lib/determinator/tracking.rb', line 36
def on_request(&block)
@on_request = block
end
|
.report(request) ⇒ Object
40
41
42
43
|
# File 'lib/determinator/tracking.rb', line 40
def report(request)
return unless @on_request
@on_request.call(request)
end
|
.start!(type) ⇒ Object
11
12
13
|
# File 'lib/determinator/tracking.rb', line 11
def start!(type)
Thread.current[:determinator_tracker] = Tracker.new(type)
end
|
.started? ⇒ Boolean
27
28
29
|
# File 'lib/determinator/tracking.rb', line 27
def started?
!!instance
end
|
.track(id, guid, feature, determination) ⇒ Object
31
32
33
34
|
# File 'lib/determinator/tracking.rb', line 31
def track(id, guid, feature, determination)
return false unless started?
instance.track(id, guid, feature, determination)
end
|