Module: Assembler::Initializer

Defined in:
lib/assembler/initializer.rb

Instance Method Summary collapse

Instance Method Details

#initialize(options = {}) {|builder| ... } ⇒ Object

Yields:

  • (builder)

Raises:

  • (ArgumentError)


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