Sha256: 0e20b3820d3ef58b892ebabd8aaaa9856f706a914ee1f8203139e17cd0fd001b

Contents?: true

Size: 1 KB

Versions: 36

Compression:

Stored size: 1 KB

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

Version data entries

36 entries across 36 versions & 1 rubygems

Version Path
rollbar-3.6.1 lib/rollbar/plugins/delayed_job/job_data.rb
rollbar-3.6.0 lib/rollbar/plugins/delayed_job/job_data.rb
rollbar-3.5.2 lib/rollbar/plugins/delayed_job/job_data.rb
rollbar-3.5.1 lib/rollbar/plugins/delayed_job/job_data.rb
rollbar-3.5.0 lib/rollbar/plugins/delayed_job/job_data.rb
rollbar-3.4.2 lib/rollbar/plugins/delayed_job/job_data.rb
rollbar-3.4.1 lib/rollbar/plugins/delayed_job/job_data.rb
rollbar-3.4.0 lib/rollbar/plugins/delayed_job/job_data.rb
rollbar-3.3.3 lib/rollbar/plugins/delayed_job/job_data.rb
rollbar-3.3.2 lib/rollbar/plugins/delayed_job/job_data.rb
rollbar-3.3.1 lib/rollbar/plugins/delayed_job/job_data.rb
rollbar-3.3.0 lib/rollbar/plugins/delayed_job/job_data.rb
rollbar-3.2.0 lib/rollbar/plugins/delayed_job/job_data.rb
rollbar-3.1.2 lib/rollbar/plugins/delayed_job/job_data.rb
rollbar-3.1.1 lib/rollbar/plugins/delayed_job/job_data.rb
rollbar-3.1.0 lib/rollbar/plugins/delayed_job/job_data.rb
rollbar-3.0.1 lib/rollbar/plugins/delayed_job/job_data.rb
rollbar-3.0.0 lib/rollbar/plugins/delayed_job/job_data.rb
rollbar-2.27.1 lib/rollbar/plugins/delayed_job/job_data.rb
rollbar-2.27.0 lib/rollbar/plugins/delayed_job/job_data.rb