class 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 14 def initialize(names, values, parent=nil) 15 @names = names 16 @parent = parent 17 @hash = {} 18 names.each_with_index { |name, i| 19 @hash[name.to_sym] = values[i] unless values[i].nil? 20 } 21 end
Public Instance Methods
[](index)
click to toggle source
Find an argument value by name or index.
# File lib/rake/task_arguments.rb 31 def [](index) 32 lookup(index.to_sym) 33 end
each(&block)
click to toggle source
# File lib/rake/task_arguments.rb 42 def each(&block) 43 @hash.each(&block) 44 end
inspect()
click to toggle source
# File lib/rake/task_arguments.rb 58 def inspect 59 to_s 60 end
method_missing(sym, *args, &block)
click to toggle source
# File lib/rake/task_arguments.rb 46 def method_missing(sym, *args, &block) 47 lookup(sym.to_sym) 48 end
new_scope(names)
click to toggle source
Create a new argument scope using the prerequisite argument names.
# File lib/rake/task_arguments.rb 25 def new_scope(names) 26 values = names.collect { |n| self[n] } 27 self.class.new(names, values, self) 28 end
to_hash()
click to toggle source
# File lib/rake/task_arguments.rb 50 def to_hash 51 @hash 52 end
to_s()
click to toggle source
# File lib/rake/task_arguments.rb 54 def to_s 55 @hash.inspect 56 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 38 def with_defaults(defaults) 39 @hash = defaults.merge(@hash) 40 end
Protected Instance Methods
lookup(name)
click to toggle source
# File lib/rake/task_arguments.rb 64 def lookup(name) 65 if @hash.has_key?(name) 66 @hash[name] 67 elsif @parent 68 @parent.lookup(name) 69 end 70 end