Class: Dry::Initializer::Option

Inherits:
Attribute show all
Defined in:
lib/dry/initializer/option.rb

Instance Attribute Summary

Attributes inherited from Attribute

#coercer, #default, #optional, #reader, #source, #target

Instance Method Summary collapse

Methods inherited from Attribute

#==, dispatchers, #getter, #initialize, new, option, param

Constructor Details

This class inherits a constructor from Dry::Initializer::Attribute

Instance Method Details

#coercer_hashObject

part of __coercers__



29
30
31
32
33
# File 'lib/dry/initializer/option.rb', line 29

def coercer_hash
  return {} unless coercer
  value = proc { |v| (v == Dry::Initializer::UNDEFINED) ? v : coercer.(v) }
  { :"option_#{source}" => value }
end

#default_hashObject

part of __defaults__



24
25
26
# File 'lib/dry/initializer/option.rb', line 24

def default_hash
  default ? { :"option_#{source}" => default } : {}
end

#fast_setterObject



17
18
19
20
21
# File 'lib/dry/initializer/option.rb', line 17

def fast_setter
  return safe_setter unless dispensable?
  "@#{target} = __options__.key?(:'#{source}') ? #{safe_coerced} : " \
  "Dry::Initializer::UNDEFINED"
end

#initializer_signatureObject

part of __initializer__ definition



4
5
6
# File 'lib/dry/initializer/option.rb', line 4

def initializer_signature
  "**__options__"
end

#presetterObject

parts of __initalizer__



9
10
11
# File 'lib/dry/initializer/option.rb', line 9

def presetter
  "@#{target} = Dry::Initializer::UNDEFINED" if dispensable?
end

#safe_setterObject



13
14
15
# File 'lib/dry/initializer/option.rb', line 13

def safe_setter
  "@#{target} = #{safe_coerced}#{maybe_optional}"
end