6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
# File 'lib/assembler/initializer.rb', line 6
def initialize(options={})
builder = Assembler::Builder.new(*self.class.all_param_names)
yield builder if block_given?
@full_options = Assembler::Parameters.new(options.merge(builder.to_h))
missing_required_params = []
self.class.required_params.each do |param_name|
remember_value_or(param_name) { missing_required_params << param_name }
end
self.class.optional_params.each do |param_name, default_value|
remember_value_or(param_name) { default_value }
end
raise(ArgumentError, "missing keywords: #{missing_required_params.join(', ')}") if missing_required_params.any?
end
|