TaskArguments manage the arguments passed to a task.
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 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
Find an argument value by name or index.
# File rake/task_arguments.rb, line 31
def [](index)
lookup(index.to_sym)
end
# File rake/task_arguments.rb, line 42
def each(&block)
@hash.each(&block)
end
# File rake/task_arguments.rb, line 50
def method_missing(sym, *args)
lookup(sym.to_sym)
end
Create a new argument scope using the prerequisite argument names.
# File rake/task_arguments.rb, line 25
def new_scope(names)
values = names.collect { |n| self[n] }
self.class.new(names, values, self)
end