Class: Dry::Initializer::Plugins::TypeConstraint
- Defined in:
- lib/dry/initializer/plugins/type_constraint.rb
Overview
Plugin builds either chunk of code for the #initializer, or a proc for the ##after_initialize callback.
Instance Attribute Summary
Attributes inherited from Base
Instance Method Summary collapse
Methods inherited from Base
Constructor Details
This class inherits a constructor from Dry::Initializer::Plugins::Base
Instance Method Details
#call ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 |
# File 'lib/dry/initializer/plugins/type_constraint.rb', line 5 def call return unless settings.key? :type type = settings[:type] fail TypeConstraintError.new(name, type) unless type.respond_to? :call ivar = :"@#{name}" lambda do |*| value = instance_variable_get(ivar) return if value == Dry::Initializer::UNDEFINED instance_variable_set ivar, type.call(value) end end |