Class: EvilEvents::Shared::TypeConverter::TypeBuilder
- Inherits:
-
Object
- Object
- EvilEvents::Shared::TypeConverter::TypeBuilder
- Defined in:
- lib/evil_events/shared/type_converter/type_builder.rb
Overview
Instance Attribute Summary collapse
- #type_atom ⇒ Concurrent::Atom<EvilEvents::Shared::Types::Any> readonly private
Instance Method Summary collapse
-
#append(option, value) ⇒ Object
Self.
-
#initialize ⇒ TypeBuilder
constructor
A new instance of TypeBuilder.
- #result ⇒ EvilEvents::Shared::Types::Any
Constructor Details
#initialize ⇒ TypeBuilder
Returns a new instance of TypeBuilder.
9 10 11 |
# File 'lib/evil_events/shared/type_converter/type_builder.rb', line 9 def initialize @type_atom = Concurrent::Atom.new(EvilEvents::Shared::Types::Any) end |
Instance Attribute Details
#type_atom ⇒ Concurrent::Atom<EvilEvents::Shared::Types::Any> (readonly, private)
49 50 51 |
# File 'lib/evil_events/shared/type_converter/type_builder.rb', line 49 def type_atom @type_atom end |
Instance Method Details
#append(option, value) ⇒ Object
Returns self.
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/evil_events/shared/type_converter/type_builder.rb', line 19 def append(option, value) type_atom.swap do |type| case option when :default # NOTE: Dry::Types callable wrapper (see Dry::Types::Default::Callable#evaulate) default_value = value.is_a?(Proc) ? (->(_type) { value.call }) : (proc { value }) type.default(default_value) when :constructor type.constructor(value) else type end end self end |
#result ⇒ EvilEvents::Shared::Types::Any
40 41 42 |
# File 'lib/evil_events/shared/type_converter/type_builder.rb', line 40 def result type_atom.value end |