Class: Rake::Application (Ruby 2.2.4)
Description: Class : Rake::Application - Ruby 2.2.4

- Home
- Core 2.2.4
- Std-lib 2.2.4
- Downloads

Support for the Ruby 2.2 series has ended. See here for reference.

### Home Classes Methods

### In Files

- rake/application.rb

### Parent

Object

### Methods

- ::new
- #add_loader
- #init
- #load_rakefile
- #options
- #run
- #run_with_threads
- #top_level

### Included Modules

- Rake::TaskManager

### Class/Module Index

Quicksearch

- FileUtils
- Module
- Object
- Pathname
- Rake::Application
- Rake::CompositePublisher
- Rake::DSL
- Rake::DefaultLoader
- Rake::EarlyTime
- Rake::FileCreationTask
- Rake::FileList
- Rake::FileTask
- Rake::FileUtilsExt
- Rake::InvocationChain
- Rake::InvocationChain::EmptyInvocationChain
- Rake::InvocationExceptionMixin
- Rake::LateTime
- Rake::LinkedList
- Rake::LinkedList::EmptyLinkedList
- Rake::MakefileLoader
- Rake::MultiTask
- Rake::NameSpace
- Rake::PackageTask
- Rake::PrivateReader
- Rake::RuleRecursionOverflowError
- Rake::Scope
- Rake::SshDirPublisher
- Rake::SshFilePublisher
- Rake::SshFreshDirPublisher
- Rake::Task
- Rake::TaskArgumentError
- Rake::TaskArguments
- Rake::TaskLib
- Rake::TaskManager
- Rake::TestTask
- Rake::Win32
- String

No matching classes.

# Rake::Application

Rake main application object. When invoking `rake` from the command line, a Rake::Application object is created and run.

### Constants

DEFAULT_RAKEFILES

### Attributes

name[R]

The name of the application (typically 'rake')

original_dir[R]

The original directory where rake was invoked.

rakefile[R]

Name of the actual rakefile used.

terminal_columns[RW]

Number of columns on the terminal

top_level_tasks[R]

List of the top level task names (task names from the command line).

### Public Class Methods

new() click to toggle source

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

### Public Instance Methods

add_loader(ext, loader) click to toggle source

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

init(app_name='rake') click to toggle source

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

load_rakefile() click to toggle source

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

options() click to toggle source

Application options from the command line

                   # File rake/application.rb, line 135
    def options
      @options ||= OpenStruct.new
    end

run() click to toggle source

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_with_threads() click to toggle source

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

top_level() click to toggle source

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