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 Attribute Summary collapse
Class Method Summary
collapse
Class Attribute Details
.endpoint_env_vars ⇒ Object
Returns the value of attribute endpoint_env_vars.
7
8
9
|
# File 'lib/determinator/tracking.rb', line 7
def endpoint_env_vars
@endpoint_env_vars
end
|
Class Method Details
.clear! ⇒ Object
25
26
27
|
# File 'lib/determinator/tracking.rb', line 25
def clear!
Thread.current[:determinator_tracker] = nil
end
|
.clear_hooks! ⇒ Object
58
59
60
61
|
# File 'lib/determinator/tracking.rb', line 58
def clear_hooks!
@on_request = nil
@get_context = nil
end
|
.collect_endpoint_info(parts) ⇒ Object
67
68
69
70
71
|
# File 'lib/determinator/tracking.rb', line 67
def collect_endpoint_info(parts)
endpoint = Array(Determinator::Tracking.endpoint_env_vars).map{ |v| ENV[v] }
endpoint += Array(parts)
endpoint.reject{ |p| p.nil? || p == ''}.join(' ')
end
|
.context ⇒ Object
51
52
53
54
55
56
|
# File 'lib/determinator/tracking.rb', line 51
def context
return unless @get_context
@get_context.call
rescue
nil
end
|
.finish!(endpoint:, error:, **attributes) ⇒ Object
17
18
19
20
21
22
23
|
# File 'lib/determinator/tracking.rb', line 17
def finish!(endpoint:, error:, **attributes)
return false unless started?
request = instance.finish!(endpoint: endpoint, error: error, **attributes)
clear!
report(request)
request
end
|
.get_context(&block) ⇒ Object
47
48
49
|
# File 'lib/determinator/tracking.rb', line 47
def get_context(&block)
@get_context = block
end
|
.instance ⇒ Object
9
10
11
|
# File 'lib/determinator/tracking.rb', line 9
def instance
Thread.current[:determinator_tracker]
end
|
.on_request(&block) ⇒ Object
38
39
40
|
# File 'lib/determinator/tracking.rb', line 38
def on_request(&block)
@on_request = block
end
|
.report(request) ⇒ Object
42
43
44
45
|
# File 'lib/determinator/tracking.rb', line 42
def report(request)
return unless @on_request
@on_request.call(request)
end
|
.start!(type) ⇒ Object
13
14
15
|
# File 'lib/determinator/tracking.rb', line 13
def start!(type)
Thread.current[:determinator_tracker] = Tracker.new(type)
end
|
.started? ⇒ Boolean
29
30
31
|
# File 'lib/determinator/tracking.rb', line 29
def started?
!!instance
end
|
.track(id, guid, feature, determination) ⇒ Object
33
34
35
36
|
# File 'lib/determinator/tracking.rb', line 33
def track(id, guid, feature, determination)
return false unless started?
instance.track(id, guid, feature, determination)
end
|