module Determinator::Tracking

Attributes

endpoint_env_vars[R]

Public Class Methods

clear!() click to toggle source
# File lib/determinator/tracking.rb, line 25
def clear!
  Thread.current[:determinator_tracker] = nil
end
clear_hooks!() click to toggle source
# File lib/determinator/tracking.rb, line 58
def clear_hooks!
  @on_request = nil
  @get_context = nil
end
collect_endpoint_info(parts) click to toggle source
# 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() click to toggle source
# File lib/determinator/tracking.rb, line 51
def context
  return unless @get_context
  @get_context.call
rescue
  nil
end
endpoint_env_vars=(vars) click to toggle source
# File lib/determinator/tracking.rb, line 63
def endpoint_env_vars=(vars)
  @endpoint_env_vars = Array(vars)
end
finish!(endpoint:, error:, **attributes) click to toggle source
# 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) click to toggle source
# File lib/determinator/tracking.rb, line 47
def get_context(&block)
  @get_context = block
end
instance() click to toggle source
# File lib/determinator/tracking.rb, line 9
def instance
  Thread.current[:determinator_tracker]
end
on_request(&block) click to toggle source
# File lib/determinator/tracking.rb, line 38
def on_request(&block)
  @on_request = block
end
report(request) click to toggle source
# File lib/determinator/tracking.rb, line 42
def report(request)
  return unless @on_request
  @on_request.call(request)
end
start!(type) click to toggle source
# File lib/determinator/tracking.rb, line 13
def start!(type)
  Thread.current[:determinator_tracker] = Tracker.new(type)
end
started?() click to toggle source
# File lib/determinator/tracking.rb, line 29
def started?
  !!instance
end
track(id, guid, feature, determination) click to toggle source
# File lib/determinator/tracking.rb, line 33
def track(id, guid, feature, determination)
  return false unless started?
  instance.track(id, guid, feature, determination)
end