Module: Meta::Utils::Kwargs::Helpers

Defined in:
lib/meta/utils/kwargs/helpers.rb

Class Method Summary collapse

Class Method Details

.fix!(options, fixed_values) ⇒ Object

将 options 内的值修正为固定值,该方法会原地修改 options 选项。 如果 options 中的缺失相应的值,则使用 fixed_values 中的值补充;如果 options 中的值不等于 fixed_values 中对应的值,则抛出异常。 示例: (1)fix!({}, { a: 1, b: 2 }) # => { a: 1, b: 2 } (2)fix!({ a: 1 }, { a: 2 }) # raise error



13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/meta/utils/kwargs/helpers.rb', line 13

def fix!(options, fixed_values)
  fixed_values.each do |key, value|
    if options.include?(key)
      if options[key] != value
        raise ArgumentError, "关键字参数 #{key} 的值不正确,必须为 #{value}"
      end
    else
      options[key] = value
    end
  end
  options
end

.merge_defaults!(options, defaults) ⇒ Object



26
27
28
29
30
31
# File 'lib/meta/utils/kwargs/helpers.rb', line 26

def merge_defaults!(options, defaults)
  defaults.each do |key, value|
    options[key] = value unless options[key]
  end
  options
end