class Rollbar::Delayed::JobData

Attributes

job[R]

Public Class Methods

new(job) click to toggle source
# File lib/rollbar/plugins/delayed_job/job_data.rb, line 6
def initialize(job)
  @job = job
end

Public Instance Methods

to_hash() click to toggle source
# File lib/rollbar/plugins/delayed_job/job_data.rb, line 10
def to_hash
  job_data = extract_job_data

  handler_parent = job_data['job'] || job_data
  handler_parent['handler'] = handler_data

  job_data
end

Private Instance Methods

extract_job_data() click to toggle source
# File lib/rollbar/plugins/delayed_job/job_data.rb, line 21
def extract_job_data
  if job.respond_to?(:as_json)
    job.as_json
  else
    Hash[job.to_hash.map { |k, v| [k.to_s, v] }]
  end
end
handler_data() click to toggle source
# File lib/rollbar/plugins/delayed_job/job_data.rb, line 29
def handler_data
  payload_object = job.payload_object

  return payload_object unless payload_object.respond_to?(:object)

  object_data(payload_object.object)
rescue StandardError
  {}
end
object_data(object) click to toggle source
# File lib/rollbar/plugins/delayed_job/job_data.rb, line 39
def object_data(object)
  {
    :method_name => job.payload_object.method_name,
    :args => job.payload_object.args,
    :object => object.is_a?(Class) ? object.name : object.to_s
  }
rescue StandardError
  {}
end