TaskArguments manage the arguments passed to a task.
Create a TaskArgument object with a list of argument names
and
a set of associated 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 = {} @values = values 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 42 def [](index) lookup(index.to_sym) end
Enumerates the arguments and their values
# File rake/task_arguments.rb, line 54 def each(&block) @hash.each(&block) end
Retrieve the list of values not associated with named arguments
# File rake/task_arguments.rb, line 30 def extras @values[@names.length..-1] || [] end
Returns true if key
is one of the arguments
# File rake/task_arguments.rb, line 82 def has_key?(key) @hash.has_key?(key) end
Returns the value of the given argument via #method_missing
# File rake/task_arguments.rb, line 64 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 36 def new_scope(names) values = names.map { |n| self[n] } self.class.new(names, values + extras, self) end
Retrieve the complete array of sequential values
# File rake/task_arguments.rb, line 25 def to_a @values.dup end
Returns a Hash of arguments and their values
# File rake/task_arguments.rb, line 69 def to_hash @hash 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.