Class: Dry::Initializer::Plugins::DefaultProc

Inherits:
Base
  • Object
show all
Defined in:
lib/dry/initializer/plugins/default_proc.rb

Overview

Builds a block to be evaluated by initializer (after_initialize) to assign a default value to the argument

Instance Attribute Summary

Attributes inherited from Base

#name, #settings

Instance Method Summary collapse

Methods inherited from Base

#==, call, #initialize

Constructor Details

This class inherits a constructor from Dry::Initializer::Plugins::Base

Instance Method Details

#callObject



5
6
7
8
9
10
11
12
13
14
15
16
# File 'lib/dry/initializer/plugins/default_proc.rb', line 5

def call
  return unless default

  ivar = :"@#{name}"
  default_proc = default

  proc do
    if instance_variable_get(ivar) == Dry::Initializer::UNDEFINED
      instance_variable_set ivar, instance_eval(&default_proc)
    end
  end
end