Class: Rake::Task
Overview
:nodoc:
Direct Known Subclasses
Buildr::CompileTask, Buildr::IntegrationTestsTask, Buildr::Javadoc::JavadocTask, Buildr::Project, Buildr::ResourcesTask, Buildr::TestTask
Instance Method Summary collapse
Instance Method Details
#invoke(*args) ⇒ Object
461 462 463 464 |
# File 'lib/buildr/core/application.rb', line 461 def invoke(*args) task_args = TaskArguments.new(arg_names, args) invoke_with_call_chain(task_args, Thread.current[:rake_chain] || InvocationChain::EMPTY) end |
#invoke_with_call_chain(task_args, invocation_chain) ⇒ Object
466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 |
# File 'lib/buildr/core/application.rb', line 466 def invoke_with_call_chain(task_args, invocation_chain) new_chain = InvocationChain.append(self, invocation_chain) @lock.synchronize do if application..trace puts "** Invoke #{name} #{format_trace_flags}" end return if @already_invoked @already_invoked = true begin invoke_prerequisites(task_args, new_chain) rescue trace "Exception while invoking prerequisites of task #{self.inspect}" raise end begin old_chain, Thread.current[:rake_chain] = Thread.current[:rake_chain], new_chain execute(task_args) if needed? ensure Thread.current[:rake_chain] = nil end end end |