Sha256: 2b5ab633f9f1ca9ff722ad20d19bd4522c48ee6e909beada9af26d19c4aab00c

Contents?: true

Size: 831 Bytes

Versions: 3

Compression:

Stored size: 831 Bytes

Contents

require 'bugsnag'

Rake::TaskManager.record_task_metadata = true

class Rake::Task

  def execute_with_bugsnag(args=nil)
    Bugsnag.configuration.app_type ||= "rake"
    old_task = Bugsnag.configuration.request_data[:bugsnag_running_task]
    Bugsnag.set_request_data :bugsnag_running_task, self

    execute_without_bugsnag(args)

  rescue Exception => ex
    Bugsnag.auto_notify(ex, {
      :severity_reason => {
        :type => Bugsnag::Notification::UNHANDLED_EXCEPTION_MIDDLEWARE,
        :attributes => {
          :framework => "Rake"
        }
      }
    })
    raise
  ensure
    Bugsnag.set_request_data :bugsnag_running_task, old_task
  end

  alias_method :execute_without_bugsnag, :execute
  alias_method :execute, :execute_with_bugsnag
end

Bugsnag.configuration.internal_middleware.use(Bugsnag::Middleware::Rake)

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
bugsnag-5.5.0 lib/bugsnag/rake.rb
bugsnag-5.4.1 lib/bugsnag/rake.rb
bugsnag-5.4.0 lib/bugsnag/rake.rb