class Rake::TaskArguments
TaskArguments
管理传递给任务的参数。
属性
names[R]
参数名称
公共类方法
new(names, values, parent=nil) 点击切换源代码
创建一个 TaskArgument 对象,其中包含参数 names
的列表和一组关联的 values
。parent
是父参数对象。
# 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?
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