Sha256: d2d8df88636d656a2982391dd69a32b4e3131f2fafd4f94dae238016c1c36e02
Contents?: true
Size: 826 Bytes
Versions: 5
Compression:
Stored size: 826 Bytes
Contents
module Dry::Initializer::Plugins # Plugin builds a code for variable setter: # # @example # VariableSetter.call(:user, option: false) # # => "@user = user" # # VariableSetter.call(:user, option: true) # # => "@user = __options__.fetch(:user)" # # VariableSetter.call(:user, option: true, optional: true) # # => "@user = __options__.fetch(:user, Dry::Initializer::UNDEFINED)" # class VariableSetter < Base def param? settings[:option] != true end def required? !settings.key?(:default) && !settings[:optional] end def call return "@#{name} = #{name}" if param? key = ":\"#{name}\"" return "@#{rename} = __options__.fetch(#{key})" if required? "@#{rename} = __options__.fetch(#{key}, Dry::Initializer::UNDEFINED)" end end end
Version data entries
5 entries across 5 versions & 1 rubygems