Sha256: cbae49109fe5cc1cc14180aa36b22dcf95ed11926de49e29935b44bcecb36b80

Contents?: true

Size: 937 Bytes

Versions: 13

Compression:

Stored size: 937 Bytes

Contents

require 'bugsnag'

Rake::TaskManager.record_task_metadata = true

class Rake::Task

  FRAMEWORK_ATTRIBUTES = {
    :framework => "Rake"
  }

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

    execute_without_bugsnag(args)

  rescue Exception => ex
    Bugsnag.notify(ex, true) do |report|
      report.severity = "error"
      report.severity_reason = {
        :type => Bugsnag::Report::UNHANDLED_EXCEPTION_MIDDLEWARE,
        :attributes => FRAMEWORK_ATTRIBUTES
      }
    end
    raise
  ensure
    Bugsnag.configuration.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

13 entries across 13 versions & 1 rubygems

Version Path
bugsnag-6.6.3 lib/bugsnag/integrations/rake.rb
bugsnag-6.6.2 lib/bugsnag/integrations/rake.rb
bugsnag-6.6.1 lib/bugsnag/integrations/rake.rb
bugsnag-6.6.0 lib/bugsnag/integrations/rake.rb
bugsnag-6.5.0 lib/bugsnag/integrations/rake.rb
bugsnag-6.4.0 lib/bugsnag/integrations/rake.rb
bugsnag-6.3.0 lib/bugsnag/integrations/rake.rb
bugsnag-6.3.0.beta.0 lib/bugsnag/integrations/rake.rb
bugsnag-6.2.0 lib/bugsnag/integrations/rake.rb
bugsnag-6.1.1 lib/bugsnag/integrations/rake.rb
bugsnag-6.1.0 lib/bugsnag/integrations/rake.rb
bugsnag-6.0.1 lib/bugsnag/integrations/rake.rb
bugsnag-6.0.0 lib/bugsnag/integrations/rake.rb