Class: Rake::TaskArguments

### Home Classes Methods

### In Files

- lib/rake/task_arguments.rb

### Parent

Object

### Methods

- ::new
- #[]
- #each
- #inspect
- #lookup
- #method_missing
- #new_scope
- #to_hash
- #to_s
- #values_at
- #with_defaults

### Included Modules

- Enumerable

### Files

- MIT-LICENSE
- README.rdoc
- TODO
- command_line_usage.rdoc
- glossary.rdoc
- proto_rake.rdoc
- rakefile.rdoc
- rational.rdoc
- rake-0.4.14.rdoc
- rake-0.4.15.rdoc
- rake-0.5.0.rdoc
- rake-0.5.3.rdoc
- rake-0.5.4.rdoc
- rake-0.6.0.rdoc
- rake-0.7.0.rdoc
- rake-0.7.1.rdoc
- rake-0.7.2.rdoc
- rake-0.7.3.rdoc
- rake-0.8.0.rdoc
- rake-0.8.4.rdoc
- rake-0.8.5.rdoc
- rake-0.8.6.rdoc
- rake-0.8.7.rdoc

### Class/Module Index

Quicksearch

- Rake
- Rake::AltSystem
- Rake::Application
- Rake::Backtrace
- Rake::Cloneable
- Rake::CompositePublisher
- Rake::DSL
- Rake::DefaultLoader
- Rake::EarlyTime
- Rake::FileCreationTask
- Rake::FileList
- Rake::FileTask
- Rake::FileUtilsExt
- Rake::FtpFile
- Rake::FtpUploader
- Rake::InvocationChain
- Rake::InvocationChain::EmptyInvocationChain
- Rake::InvocationExceptionMixin
- Rake::MakefileLoader
- Rake::MultiTask
- Rake::NameSpace
- Rake::PackageTask
- Rake::PseudoStatus
- Rake::RubyForgePublisher
- Rake::RuleRecursionOverflowError
- Rake::SshDirPublisher
- Rake::SshFilePublisher
- Rake::SshFreshDirPublisher
- Rake::Task
- Rake::TaskArgumentError
- Rake::TaskArguments
- Rake::TaskLib
- Rake::TaskManager
- Rake::TestTask
- Rake::TraceOutput
- Rake::Win32
- Rake::Win32::Win32HomeError
- CompositePublisher
- FileUtils
- Module
- Object
- SshDirPublisher
- SshFilePublisher
- SshFreshDirPublisher
- String
- Time

No matching classes.

# Rake::TaskArguments

TaskArguments manage the arguments passed to a task.

### Attributes

names[R]

### Public Class Methods

new(names, values, parent=nil) click to toggle source

Create a TaskArgument object with a list of named arguments (given by :names) and a set of associated values (given by :values). :parent is the parent argument object.

    # File lib/rake/task_arguments.rb, line 14
    def initialize(names, values, parent=nil)
      @names = names
      @parent = parent
      @hash = {}
      names.each_with_index { |name, i|
        @hash[name.to_sym] = values[i] unless values[i].nil?
      }
    end

### Public Instance Methods

[](index) click to toggle source

Find an argument value by name or index.

    # File lib/rake/task_arguments.rb, line 31
    def [](index)
      lookup(index.to_sym)
    end

each(&block) click to toggle source

    # File lib/rake/task_arguments.rb, line 42
    def each(&block)
      @hash.each(&block)
    end

inspect() click to toggle source

    # File lib/rake/task_arguments.rb, line 62
    def inspect
      to_s
    end

method_missing(sym, *args) click to toggle source

    # File lib/rake/task_arguments.rb, line 50
    def method_missing(sym, *args)
      lookup(sym.to_sym)
    end

new_scope(names) click to toggle source

Create a new argument scope using the prerequisite argument names.

    # File lib/rake/task_arguments.rb, line 25
    def new_scope(names)
      values = names.collect { |n| self[n] }
      self.class.new(names, values, self)
    end

to_hash() click to toggle source

    # File lib/rake/task_arguments.rb, line 54
    def to_hash
      @hash
    end

to_s() click to toggle source

    # File lib/rake/task_arguments.rb, line 58
    def to_s
      @hash.inspect
    end

values_at(*keys) click to toggle source

    # File lib/rake/task_arguments.rb, line 46
    def values_at(*keys)
      keys.map { |k| lookup(k) }
    end

with_defaults(defaults) click to toggle source

Specify a hash of default values for task arguments. Use the defaults only if there is no specific value for the given argument.

    # File lib/rake/task_arguments.rb, line 38
    def with_defaults(defaults)
      @hash = defaults.merge(@hash)
    end

### Protected Instance Methods

lookup(name) click to toggle source

    # File lib/rake/task_arguments.rb, line 68
    def lookup(name)
      if @hash.has_key?(name)
        @hash[name]
      elsif @parent
        @parent.lookup(name)
      end
    end

[Validate]

Generated with the Darkfish Rdoc Generator 2.