Skip to content

Commit

Permalink
Fix specs for JobData
Browse files Browse the repository at this point in the history
- Add correct namespace to JobData class
- Rename job_data.rb spec to job_data_spec.rb
- Detect when the job.payload_object respond to :object or not
  • Loading branch information
jondeandres committed Aug 31, 2016
1 parent e631da1 commit 5037940
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 26 deletions.
61 changes: 36 additions & 25 deletions lib/rollbar/plugins/delayed_job/job_data.rb
Original file line number Diff line number Diff line change
@@ -1,34 +1,45 @@
class JobData
attr_reader :job
module Rollbar
module Delayed
class JobData
attr_reader :job

def initialize(job)
@job = job
end
def initialize(job)
@job = job
end

def to_hash
job_data = if job.respond_to?(:as_json)
job.as_json
else
Hash[job.to_hash.map { |k, v| [k.to_s, v] }]
end
def to_hash
job_data = extract_job_data

handler_parent = job_data['job'] ? job_data['job'] : job_data
handler_parent['handler'] = handler_data
handler_parent = job_data['job'] ? job_data['job'] : job_data
handler_parent['handler'] = handler_data

job_data
end
job_data
end

private

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

private
def handler_data
payload_object = job.payload_object

def handler_data
object = job.payload_object.object
return payload_object unless payload_object.respond_to?(:object)

{
:method_name => job.payload_object.method_name,
:args => job.payload_object.args,
:object => object.is_a?(Class) ? object.name : object.to_s
}
rescue
{}
object = job.payload_object.object
{
:method_name => job.payload_object.method_name,
:args => job.payload_object.args,
:object => object.is_a?(Class) ? object.name : object.to_s
}
rescue
{}
end
end
end
end
1 change: 1 addition & 0 deletions spec/delayed/backend/test.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
require 'ostruct'
require 'delayed_job'
require 'delayed/backend/base'

# This code is taken from delayed_job/spec/delayed/backend/test.rb.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
require 'spec_helper'

require 'rollbar/delayed_job'
require 'rollbar/plugins/delayed_job/job_data'
require 'delayed/backend/test'

describe Rollbar::Delayed::JobData do
Expand Down

0 comments on commit 5037940

Please sign in to comment.