Sha256: bf1ad0103cdd5623141e9deebc4129b20e38eac38a3d9e4dcbc1b24022693082

Contents?: true

Size: 975 Bytes

Versions: 15

Compression:

Stored size: 975 Bytes

Contents

Rake::TaskManager.record_task_metadata = true

module Bugsnag::Rake
  def self.included(base)
    base.extend ClassMethods
    base.class_eval do
      class << self
        alias_method :original_define_task, :define_task
        alias_method :define_task, :bugsnag_define_task
      end
    end
  end

  module ClassMethods
    def bugsnag_define_task(*args, &block)
      task = self.original_define_task *args do |*block_args|
        begin
          Bugsnag.before_notify_callbacks << lambda {|notif|
            notif.add_tab(:rake_task, {
              :name => task.name,
              :description => task.full_comment,
              :arguments => task.arg_description
            })
            notif.context ||= task.name
          }

          yield(*block_args) if block_given?
        rescue Exception => e
          Bugsnag.auto_notify(e)
          raise
        end
      end
    end
  end
end

Rake::Task.send(:include, Bugsnag::Rake) if defined?(Rake::Task)

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
bugsnag-1.8.8 lib/bugsnag/rake.rb
bugsnag-1.8.7 lib/bugsnag/rake.rb
bugsnag-1.8.6 lib/bugsnag/rake.rb
bugsnag-1.8.5 lib/bugsnag/rake.rb
bugsnag-1.8.4 lib/bugsnag/rake.rb
bugsnag-1.8.3 lib/bugsnag/rake.rb
bugsnag-1.8.2 lib/bugsnag/rake.rb
bugsnag-1.8.1 lib/bugsnag/rake.rb
bugsnag-1.8.0 lib/bugsnag/rake.rb
bugsnag-1.7.0 lib/bugsnag/rake.rb
bugsnag-1.6.5 lib/bugsnag/rake.rb
bugsnag-1.6.4 lib/bugsnag/rake.rb
bugsnag-1.6.3 lib/bugsnag/rake.rb
bugsnag-1.6.2 lib/bugsnag/rake.rb
bugsnag-1.6.1 lib/bugsnag/rake.rb