diff options
Diffstat (limited to 'lib/rake/task_arguments.rb')
-rw-r--r-- | lib/rake/task_arguments.rb | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/lib/rake/task_arguments.rb b/lib/rake/task_arguments.rb index 4417af2f8e..0094682579 100644 --- a/lib/rake/task_arguments.rb +++ b/lib/rake/task_arguments.rb @@ -15,16 +15,27 @@ module Rake @names = names @parent = parent @hash = {} + @values = values names.each_with_index { |name, i| @hash[name.to_sym] = values[i] unless values[i].nil? } end + # Retrive the complete array of sequential values + def to_a + @values.dup + end + + # Retrive the list of values not associated with named arguments + def extras + @values[@names.length..-1] || [] + end + # Create a new argument scope using the prerequisite argument # names. def new_scope(names) - values = names.collect { |n| self[n] } - self.class.new(names, values, self) + values = names.map { |n| self[n] } + self.class.new(names, values + extras, self) end # Find an argument value by name or index. |