Module: InitializeWith

Defined in:
lib/initialize_with.rb,
lib/initialize_with/version.rb

Defined Under Namespace

Modules: ClassMethods

Constant Summary collapse

VERSION =
"0.1.0"

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



4
5
6
# File 'lib/initialize_with.rb', line 4

def self.included(base)
  base.extend ClassMethods
end

Instance Method Details

#initializeObject



8
9
10
11
12
# File 'lib/initialize_with.rb', line 8

def initialize(...)
  self.class._validate_initialization_parameters!(...)
  self.class._apply_initialization_parameters(self, ...)
  self.class.instance_variable_get(:@_initialize_with_blocks)&.each { |blk| self.instance_exec(&blk) }
end