class Rake::TaskArguments

TaskArguments 管理传递给任务的参数。

属性

names[R]

参数名称

公共类方法

new(names, values, parent=nil) 点击切换源代码

创建一个 TaskArgument 对象,其中包含参数 names 的列表和一组关联的 valuesparent 是父参数对象。

# File rake-13.2.1/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

公共实例方法

[](index) 点击切换源代码

通过名称或索引查找参数值。

# File rake-13.2.1/lib/rake/task_arguments.rb, line 44
def [](index)
  lookup(index.to_sym)
end
each(&block) 点击切换源代码

枚举参数及其值

# File rake-13.2.1/lib/rake/task_arguments.rb, line 56
def each(&block)
  @hash.each(&block)
end
extras() 点击切换源代码

检索未与命名参数关联的值的列表

# File rake-13.2.1/lib/rake/task_arguments.rb, line 32
def extras
  @values[@names.length..-1] || []
end
fetch(*args, &block) 点击切换源代码
# File rake-13.2.1/lib/rake/task_arguments.rb, line 93
def fetch(*args, &block)
  @hash.fetch(*args, &block)
end
has_key?(key) 点击切换源代码

如果 key 是参数之一,则返回 true

# File rake-13.2.1/lib/rake/task_arguments.rb, line 88
def has_key?(key)
  @hash.has_key?(key)
end
也别名为: key?
key?(key)
别名为: has_key?
method_missing(sym, *args) 点击切换源代码

通过 method_missing 返回给定参数的值

# File rake-13.2.1/lib/rake/task_arguments.rb, line 66
def method_missing(sym, *args)
  lookup(sym.to_sym)
end
new_scope(names) 点击切换源代码

使用先决条件参数名称创建新的参数范围。

# File rake-13.2.1/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
to_a() 点击切换源代码

检索完整的顺序值数组

# File rake-13.2.1/lib/rake/task_arguments.rb, line 27
def to_a
  @values.dup
end
to_hash() 点击切换源代码

返回参数及其值的哈希

# File rake-13.2.1/lib/rake/task_arguments.rb, line 71
def to_hash
  @hash.dup
end
values_at(*keys) 点击切换源代码

提取 keys 处的参数值

# File rake-13.2.1/lib/rake/task_arguments.rb, line 61
def values_at(*keys)
  keys.map { |k| lookup(k) }
end
with_defaults(defaults) 点击切换源代码

为任务参数指定默认值的哈希。仅在给定参数没有特定值时才使用默认值。

# File rake-13.2.1/lib/rake/task_arguments.rb, line 51
def with_defaults(defaults)
  @hash = defaults.merge(@hash)
end