class SC::TaskArguments

TaskAguments manage the arguments passed to a task. Borrowed from Rake 0.8.3

Attributes

names[R]

Public Class Methods

new(keys, values, parent = nil) click to toggle source

for compatibility with normal TaskArguments

Calls superclass method
# File lib/sproutcore/buildfile/task_arguments.rb, line 19
def self.new(keys, values, parent = nil)
  args = super()
  args.setup_with_arrays(keys, values, parent)
  args
end
with_hash(hash) click to toggle source
# File lib/sproutcore/buildfile/task_arguments.rb, line 25
def self.with_hash(hash)
  args = allocate
  args.setup_with_hash(hash)
  args
end

Public Instance Methods

[](index) click to toggle source

Find an argument value by name or index.

# File lib/sproutcore/buildfile/task_arguments.rb, line 58
def [](index)
  lookup(index)
end
each(&block) click to toggle source
# File lib/sproutcore/buildfile/task_arguments.rb, line 69
def each(&block)
  @hash.each(&block)
end
inspect() click to toggle source
# File lib/sproutcore/buildfile/task_arguments.rb, line 85
def inspect
  to_s
end
method_missing(sym, *args, &block) click to toggle source
# File lib/sproutcore/buildfile/task_arguments.rb, line 73
def method_missing(sym, *args, &block)
  lookup(sym.to_sym)
end
new_scope(names) click to toggle source

Create a new argument scope using the prerequisite argument names.

# File lib/sproutcore/buildfile/task_arguments.rb, line 52
def new_scope(names)
  values = names.collect { |n| self[n] }
  self.class.new(names, values, self)
end
setup_with_arrays(keys, 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/sproutcore/buildfile/task_arguments.rb, line 40
def setup_with_arrays(keys, values, parent=nil)
  @names  = keys
  @parent = parent
  @hash   = {}

  names.each_with_index { |name, i|
    @hash[name.to_sym] = values[i] unless values[i].nil?
  }
end
setup_with_hash(hash) click to toggle source
# File lib/sproutcore/buildfile/task_arguments.rb, line 31
def setup_with_hash(hash)
  @names  = hash.keys
  @parent = nil
  @hash   = hash
end
to_hash() click to toggle source
# File lib/sproutcore/buildfile/task_arguments.rb, line 77
def to_hash
  @hash
end
to_s() click to toggle source
# File lib/sproutcore/buildfile/task_arguments.rb, line 81
def to_s
  @hash.inspect
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/sproutcore/buildfile/task_arguments.rb, line 65
def with_defaults(defaults)
  @hash = defaults.merge(@hash)
end

Protected Instance Methods

lookup(name) click to toggle source
# File lib/sproutcore/buildfile/task_arguments.rb, line 91
def lookup(name)
  if @hash.has_key?(name)
    @hash[name]
  elsif ENV.has_key?(name.to_s)
    ENV[name.to_s]
  elsif ENV.has_key?(name.to_s.upcase)
    ENV[name.to_s.upcase]
  elsif @parent
    @parent.lookup(name)
  end
end