Rake main application object. When invoking rake
from the
command line, a Rake::Application object is
created and run.
Initialize a Rake::Application object.
# File rake/application.rb, line 46 def initialize super @name = 'rake' @rakefiles = DEFAULT_RAKEFILES.dup @rakefile = nil @pending_imports = [] @imported = [] @loaders = {} @default_loader = Rake::DefaultLoader.new @original_dir = Dir.pwd @top_level_tasks = [] add_loader('rb', DefaultLoader.new) add_loader('rf', DefaultLoader.new) add_loader('rake', DefaultLoader.new) @tty_output = STDOUT.tty? @terminal_columns = ENV['RAKE_COLUMNS'].to_i end
Add a loader to handle imported files ending in the extension
ext
.
# File rake/application.rb, line 129 def add_loader(ext, loader) ext = ".#{ext}" unless ext =~ /^\./ @loaders[ext] = loader end
Initialize the command line parameters and app name.
# File rake/application.rb, line 83 def init(app_name='rake') standard_exception_handling do @name = app_name args = handle_options collect_command_line_tasks(args) end end
Find the rakefile and then load it and any pending imports.
# File rake/application.rb, line 92 def load_rakefile standard_exception_handling do raw_load_rakefile end end
Application options from the command line
# File rake/application.rb, line 135 def options @options ||= OpenStruct.new end
Run the Rake application. The run method performs the following three steps:
Initialize the command line options (init
).
Define the tasks (load_rakefile
).
Run the top level tasks (top_level
).
If you wish to build a custom rake command, you should call
init
on your application. Then define any tasks. Finally,
call top_level
to run your top level tasks.
# File rake/application.rb, line 74 def run standard_exception_handling do init load_rakefile top_level end end
Run the given block with the thread startup and shutdown.
# File rake/application.rb, line 112 def run_with_threads thread_pool.gather_history if options.job_stats == :history yield thread_pool.join if options.job_stats stats = thread_pool.statistics puts "Maximum active threads: #{stats[:max_active_threads]} + main" puts "Total threads in play: #{stats[:total_threads_in_play]} + main" end ThreadHistoryDisplay.new(thread_pool.history).show if options.job_stats == :history end
Run the top level tasks of a Rake application.
# File rake/application.rb, line 99 def top_level run_with_threads do if options.show_tasks display_tasks_and_comments elsif options.show_prereqs display_prerequisites else top_level_tasks.each { |task_name| invoke_task(task_name) } end end end
Commenting is here to help enhance the documentation. For example, code samples, or clarification of the documentation.
If you have questions about Ruby or the documentation, please post to one of the Ruby mailing lists. You will get better, faster, help that way.
If you wish to post a correction of the docs, please do so, but also file bug report so that it can be corrected for the next release. Thank you.
If you want to help improve the Ruby documentation, please visit Documenting-ruby.org.