Class: Dry::Initializer::Plugins::VariableSetter

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

Overview

Plugin builds a code for variable setter:

Examples:

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)"

Instance Attribute Summary

Attributes inherited from Base

#name, #settings

Instance Method Summary collapse

Methods inherited from Base

#==, call, #initialize, #rename

Constructor Details

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

Instance Method Details

#callObject



23
24
25
26
27
28
# File 'lib/dry/initializer/plugins/variable_setter.rb', line 23

def call
  return "@#{name} = #{name}" if param?
  key = ":\"#{name}\""
  return "@#{rename} = __options__.fetch(#{key})" if required?
  "@#{rename} = __options__.fetch(#{key}, Dry::Initializer::UNDEFINED)"
end

#param?Boolean

Returns:

  • (Boolean)


15
16
17
# File 'lib/dry/initializer/plugins/variable_setter.rb', line 15

def param?
  settings[:option] != true
end

#required?Boolean

Returns:

  • (Boolean)


19
20
21
# File 'lib/dry/initializer/plugins/variable_setter.rb', line 19

def required?
  !settings.key?(:default) && !settings[:optional]
end