Module: Bugsnag::Rake::ClassMethods

Defined in:
lib/bugsnag/rake.rb

Instance Method Summary collapse

Instance Method Details

#bugsnag_define_task(*args, &block) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/bugsnag/rake.rb', line 15

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