11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
# File 'lib/appkernel/curry.rb', line 11
def curry(parent, params)
errors = Errors.new
presets = parent.canonicalize([params], errors, false)
raise ArgumentError, errors.all.join('; ') unless errors.empty?
@presets.merge! presets
applied, unapplied = parent.options.values.partition {|o| @presets.has_key?(o.name)}
unapplied.each do |option|
ingest option
end
applied.each do |option|
if option.required? && @presets[option.name].nil?
raise ArgumentError, "required option '#{option.name}' may not be nil"
end
end
end
|