Sha256: 8e9f3d53544f6a681bc39ecc60e1374aa0aa2d4ab4ff6827fd700671bc971661
Contents?: true
Size: 577 Bytes
Versions: 2
Compression:
Stored size: 577 Bytes
Contents
module Dry::Initializer::Plugins # Plugin builds either chunk of code for the #initializer, # or a proc for the ##__after_initialize__ callback. class TypeConstraint < Base def call return unless settings.key? :type type = settings[:type] fail TypeConstraintError.new(rename, type) unless type.respond_to? :call ivar = :"@#{rename}" lambda do |*| value = instance_variable_get(ivar) if value != Dry::Initializer::UNDEFINED instance_variable_set ivar, type.call(value) end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
dry-initializer-0.11.0 | lib/dry/initializer/plugins/type_constraint.rb |
dry-initializer-0.10.2 | lib/dry/initializer/plugins/type_constraint.rb |