module ActiveJob::Traceable

Constants

VERSION

Public Class Methods

new(*args) click to toggle source
Calls superclass method
# File lib/activejob/traceable/traceable.rb, line 10
def initialize(*args)
  super(*args)

  @tracing_info = Traceable.tracing_info_getter.call.deep_stringify_keys
end
tracing_info_getter() click to toggle source
# File lib/activejob/traceable/traceable.rb, line 33
def tracing_info_getter
  @tracing_info_getter || -> { {} }
end
tracing_info_setter() click to toggle source
# File lib/activejob/traceable/traceable.rb, line 37
def tracing_info_setter
  @tracing_info_setter || -> {}
end

Public Instance Methods

deserialize(job_data) click to toggle source
Calls superclass method
# File lib/activejob/traceable/traceable.rb, line 21
def deserialize(job_data)
  super(job_data)

  if job_data['tracing_info'].is_a?(Hash)
    self.tracing_info = job_data['tracing_info']
  end

  Traceable.tracing_info_setter.call(tracing_info.with_indifferent_access)
end
serialize() click to toggle source
Calls superclass method
# File lib/activejob/traceable/traceable.rb, line 17
def serialize
  super.merge!('tracing_info' => tracing_info)
end
tracing_info_getter=(lambda) click to toggle source
# File lib/activejob/traceable.rb, line 16
def tracing_info_getter=(lambda)
  if lambda
    raise 'Tracing info getter should be callable' unless lambda.respond_to?(:call)
    raise 'Tracing info getter should contain a hash' unless lambda.call.is_a?(Hash)

    @tracing_info_getter = lambda
  else
    # Resets the value
    @tracing_info_getter = nil
  end
end
tracing_info_setter=(lambda) click to toggle source
# File lib/activejob/traceable.rb, line 28
def tracing_info_setter=(lambda)
  if lambda
    raise 'Tracing info setter should be callable' unless lambda.respond_to?(:call)

    @tracing_info_setter = lambda
  else
    # Resets the value
    @tracing_info_setter = nil
  end
end