module Delayed::Plugins::Raven::Plugin::Notify

Public Instance Methods

error(job, error) click to toggle source
Calls superclass method
# File lib/delayed-plugins-raven.rb, line 11
def error(job, error)
  begin
    ::Raven.capture_exception(error, {
      configuration: ::Delayed::Plugins::Raven.raven_configuration,
      extra: { delayed_job: get_job_json(job) }
    })
  rescue Exception => e
    Rails.logger.error "Raven logging failed: #{e.class.name}: #{e.message}"
    Rails.logger.flush
  end
  super if defined?(super)
end

Private Instance Methods

get_job_json(job) click to toggle source
# File lib/delayed-plugins-raven.rb, line 26
def get_job_json(job)
  json = job.as_json["job"]

  if (excluded_attributes = plugin_config.excluded_attributes).present?
    excluded_attributes.each { |attribute| json.delete(attribute) }
  end

  if (limits = plugin_config.trimmed_attributes).present?
    limits.each do |attribute, limit|
      json[attribute] = trim_lines(json[attribute], limit) if limit > 0
    end
  end

  json
end
plugin_config() click to toggle source
# File lib/delayed-plugins-raven.rb, line 47
def plugin_config
  ::Delayed::Plugins::Raven.plugin_configuration ||= ::Delayed::Plugins::Raven::Configuration.new
end
trim_lines(string, limit) click to toggle source
# File lib/delayed-plugins-raven.rb, line 42
def trim_lines(string, limit)
  return string unless limit
  string.lines.to_a.map(&:strip).slice(0, limit).join("\n") if string.present?
end