Class: Rake::TaskArguments
Overview
TaskAguments manage the arguments passed to a task.
Instance Attribute Summary collapse
-
#names ⇒ Object
readonly
Returns the value of attribute names.
Instance Method Summary collapse
-
#[](index) ⇒ Object
Find an argument value by name or index.
- #each(&block) ⇒ Object
-
#initialize(names, values, parent = nil) ⇒ TaskArguments
constructor
Create a TaskArgument object with a list of named arguments (given by :names) and a set of associated values (given by :values).
- #inspect ⇒ Object
- #method_missing(sym, *args, &block) ⇒ Object
-
#new_scope(names) ⇒ Object
Create a new argument scope using the prerequisite argument names.
- #to_hash ⇒ Object
- #to_s ⇒ Object
-
#with_defaults(defaults) ⇒ Object
Specify a hash of default values for task arguments.
Constructor Details
#initialize(names, values, parent = nil) ⇒ TaskArguments
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.
322 323 324 325 326 327 328 329 |
# File 'lib/rake.rb', line 322 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 |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(sym, *args, &block) ⇒ Object
354 355 356 |
# File 'lib/rake.rb', line 354 def method_missing(sym, *args, &block) lookup(sym.to_sym) end |
Instance Attribute Details
#names ⇒ Object (readonly)
Returns the value of attribute names.
317 318 319 |
# File 'lib/rake.rb', line 317 def names @names end |
Instance Method Details
#[](index) ⇒ Object
Find an argument value by name or index.
339 340 341 |
# File 'lib/rake.rb', line 339 def [](index) lookup(index.to_sym) end |
#each(&block) ⇒ Object
350 351 352 |
# File 'lib/rake.rb', line 350 def each(&block) @hash.each(&block) end |
#inspect ⇒ Object
366 367 368 |
# File 'lib/rake.rb', line 366 def inspect to_s end |
#new_scope(names) ⇒ Object
Create a new argument scope using the prerequisite argument names.
333 334 335 336 |
# File 'lib/rake.rb', line 333 def new_scope(names) values = names.collect { |n| self[n] } self.class.new(names, values, self) end |
#to_hash ⇒ Object
358 359 360 |
# File 'lib/rake.rb', line 358 def to_hash @hash end |
#to_s ⇒ Object
362 363 364 |
# File 'lib/rake.rb', line 362 def to_s @hash.inspect end |
#with_defaults(defaults) ⇒ Object
Specify a hash of default values for task arguments. Use the defaults only if there is no specific value for the given argument.
346 347 348 |
# File 'lib/rake.rb', line 346 def with_defaults(defaults) @hash = defaults.merge(@hash) end |