Sha256: 5f45b3c2897c868028586de0d62c2ff71d0e51ea7196bc95287cdea9cc8d06c6

Contents?: true

Size: 1018 Bytes

Versions: 16

Compression:

Stored size: 1018 Bytes

Contents

module Rollbar
  module Delayed
    class JobData
      attr_reader :job

      def initialize(job)
        @job = job
      end

      def to_hash
        job_data = extract_job_data

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

        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

      def handler_data
        payload_object = job.payload_object

        return payload_object unless payload_object.respond_to?(:object)

        object_data(payload_object.object)
      rescue
        {}
      end

      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
        {}
      end
    end
  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
rollbar-2.19.2 lib/rollbar/plugins/delayed_job/job_data.rb
rollbar-2.19.1 lib/rollbar/plugins/delayed_job/job_data.rb
rollbar-2.19.0 lib/rollbar/plugins/delayed_job/job_data.rb
rollbar-2.18.2 lib/rollbar/plugins/delayed_job/job_data.rb
rollbar-2.18.0 lib/rollbar/plugins/delayed_job/job_data.rb
rollbar-2.17.0 lib/rollbar/plugins/delayed_job/job_data.rb
rollbar-2.16.4 lib/rollbar/plugins/delayed_job/job_data.rb
rollbar-2.16.3 lib/rollbar/plugins/delayed_job/job_data.rb
rollbar-2.16.2 lib/rollbar/plugins/delayed_job/job_data.rb
rollbar-2.16.0 lib/rollbar/plugins/delayed_job/job_data.rb
rollbar-2.15.6 lib/rollbar/plugins/delayed_job/job_data.rb
rollbar-2.15.5 lib/rollbar/plugins/delayed_job/job_data.rb
rollbar-2.15.4 lib/rollbar/plugins/delayed_job/job_data.rb
rollbar-2.15.3 lib/rollbar/plugins/delayed_job/job_data.rb
rollbar-2.15.2 lib/rollbar/plugins/delayed_job/job_data.rb
rollbar-2.15.1 lib/rollbar/plugins/delayed_job/job_data.rb