Module: Bugsnag::Rake::ClassMethods

Defined in:
lib/bugsnag/rake.rb

Instance Method Summary collapse

Instance Method Details

#bugsnag_define_task(*args, &block) ⇒ Object



30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/bugsnag/rake.rb', line 30

def bugsnag_define_task(*args, &block)
  task = self.original_define_task(*args) do |*block_args|
    begin
      old_task = Thread.current[:bugsnag_running_task]
      Thread.current[:bugsnag_running_task] = task

      yield(*block_args) if block_given?
    rescue Exception => e
      Bugsnag.auto_notify(e)
      raise
    ensure
      Thread.current[:bugsnag_running_task] = old_task
    end
  end
end