Module: DeclarativeInitialization::ClassMethods

Defined in:
lib/declarative_initialization/class_methods.rb

Instance Method Summary collapse

Instance Method Details

#initialize_with(*args, **kwargs, &post_initialize) ⇒ Object

Defines an initializer expecting the specified keyword arguments.

Parameters:

  • args (Array<Symbol>)

    Required keyword arguments

  • kwargs (Hash<Symbol, Object>)

    Optional keyword arguments with default values

  • post_initialize (Proc)

    Block to execute after initialization (optional)



11
12
13
14
15
16
17
# File 'lib/declarative_initialization/class_methods.rb', line 11

def initialize_with(*args, **kwargs, &post_initialize)
  declared = args + kwargs.keys
  Internal.validate_arguments!(self, declared)
  declared.each { |key| _define_reader(key) }
  _define_reader(:block, block_reader: true)
  _define_generated_initializer(declared, kwargs, post_initialize)
end