lib/rake/funnel/integration/progress_report.rb in rake-funnel-0.3.2.pre vs lib/rake/funnel/integration/progress_report.rb in rake-funnel-0.4.0.pre
- old
+ new
@@ -1,70 +1,72 @@
-require 'rake'
-
-module Rake::Funnel::Integration
- class ProgressReport
- attr_accessor :starting, :finished
-
- def initialize
- task_starting do |task, args|
- puts "\n[#{task.name}]" unless Rake::Funnel::Integration::TeamCity.running?
- end
-
- task_finished { |task, args, error| }
-
- yield self if block_given?
-
- patch.apply!
- end
-
- def disable!
- patch.revert!
- end
-
- def task_starting(&block)
- @starting = block
- end
-
- def task_finished(&block)
- @finished = block
- end
-
- private
- def patch
- @patch ||= create_patch
- end
-
- def create_patch
- Rake::Funnel::Support::Patch.new(self) do |p|
- p.setup do |context|
- Rake::Task.class_eval do
- old_execute = instance_method(:execute)
-
- define_method(:execute) do |args|
- context.starting.call(self, args)
-
- error = nil
- begin
- old_execute.bind(self).call(args)
- rescue => e
- error = e
- ensure
- context.finished.call(self, args, error)
- raise error if error
- end
- end
-
- old_execute
- end
- end
-
- p.reset do |memo|
- Rake::Task.class_eval do
- define_method(:execute) do |args|
- memo.bind(self).call(args)
- end
- end
- end
- end
- end
- end
-end
+require 'rake'
+
+module Rake
+ module Funnel
+ module Integration
+ class ProgressReport
+ attr_reader :starting, :finished
+
+ def initialize
+ task_starting do |task, _args|
+ puts "\n[#{task.name}]" unless Rake::Funnel::Integration::TeamCity.running?
+ end
+
+ yield self if block_given?
+
+ patch.apply!
+ end
+
+ def task_starting(&block)
+ @starting = block
+ end
+
+ def task_finished(&block)
+ @finished = block
+ end
+
+ def disable!
+ patch.revert!
+ end
+
+ private
+ def patch
+ @patch ||= create_patch
+ end
+
+ def create_patch
+ Rake::Funnel::Support::Patch.new(self) do |p|
+ p.setup do |context|
+ Rake::Task.class_eval do
+ old_execute = instance_method(:execute)
+
+ define_method(:execute) do |args|
+ context.starting.call(self, args) if context.starting
+
+ error = nil
+ begin
+ old_execute.bind(self).call(args)
+ rescue => e
+ error = e
+ ensure
+ context.finished.call(self, args, error) if context.finished
+ fail error if error
+ end
+ end
+
+ old_execute
+ end
+ end
+
+ p.reset do |memo|
+ Rake::Task.class_eval do
+ define_method(:execute) do |args|
+ memo.bind(self).call(args)
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+end