Class: EvilEvents::Shared::TypeConverter

Inherits:
Object
  • Object
show all
Defined in:
lib/evil_events/shared/type_converter.rb,
lib/evil_events/shared/type_converter/converter.rb,
lib/evil_events/shared/type_converter/type_builder.rb,
lib/evil_events/shared/type_converter/converter_registry.rb

Overview

Since:

  • 0.2.0

Defined Under Namespace

Classes: Converter, ConverterRegistry, TypeBuilder

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeTypeConverter

Returns a new instance of TypeConverter.

Since:

  • 0.2.0



15
16
17
# File 'lib/evil_events/shared/type_converter.rb', line 15

def initialize
  @registry = ConverterRegistry.new
end

Instance Attribute Details

#registryEvilEvents::Shared::TypeConverter::ConverterRegistry (readonly)



11
12
13
# File 'lib/evil_events/shared/type_converter.rb', line 11

def registry
  @registry
end

Instance Method Details

#register(type_name, coercer) ⇒ EvilEvents::Shared::TypeConverter::Converter

Parameters:

  • type_name (Symbol)
  • coercer (Proc)

Returns:

See Also:

Since:

  • 0.2.0



27
28
29
# File 'lib/evil_events/shared/type_converter.rb', line 27

def register(type_name, coercer)
  registry.register(type_name, coercer)
end

#resolve_type(type_name, **options) ⇒ EvilEvents::Shared::Types::Any

Parameters:

  • type_name (Symbol)
  • options (Hash)

Returns:

  • (EvilEvents::Shared::Types::Any)

See Also:

Since:

  • 0.2.0



39
40
41
# File 'lib/evil_events/shared/type_converter.rb', line 39

def resolve_type(type_name, **options)
  registry.resolve(type_name).transform_to_type(**options)
end