class Rake::TaskArguments
TaskArguments
manage the arguments passed to a task.
Attributes
Argument names
Public Class Methods
Create a TaskArgument object with a list of argument names
and a set of associated values
. parent
is the parent argument object.
# File lib/rake/task_arguments.rb, line 15 def initialize(names, values, parent=nil) @names = names @parent = parent @hash = {} @values = values names.each_with_index { |name, i| next if values[i].nil? || values[i] == "" @hash[name.to_sym] = values[i] } end
Public Instance Methods
Find an argument value by name or index.
# File lib/rake/task_arguments.rb, line 44 def [](index) lookup(index.to_sym) end
Enumerates the arguments and their values
# File lib/rake/task_arguments.rb, line 56 def each(&block) @hash.each(&block) end
Retrieve the list of values not associated with named arguments
# File lib/rake/task_arguments.rb, line 32 def extras @values[@names.length..-1] || [] end
# File lib/rake/task_arguments.rb, line 93 def fetch(*args, &block) @hash.fetch(*args, &block) end
Returns true if key
is one of the arguments
# File lib/rake/task_arguments.rb, line 88 def has_key?(key) @hash.has_key?(key) end
Returns the value of the given argument via method_missing
# File lib/rake/task_arguments.rb, line 66 def method_missing(sym, *args) lookup(sym.to_sym) end
Create a new argument scope using the prerequisite argument names.
# File lib/rake/task_arguments.rb, line 38 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 lib/rake/task_arguments.rb, line 27 def to_a @values.dup end
Returns a Hash of arguments and their values
# File lib/rake/task_arguments.rb, line 71 def to_hash @hash.dup end
Extracts the argument values at keys
# File lib/rake/task_arguments.rb, line 61 def values_at(*keys) keys.map { |k| lookup(k) } end
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 51 def with_defaults(defaults) @hash = defaults.merge(@hash) end