Class: EvilEvents::Shared::TypeConverter::ConverterRegistry

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

Overview

Since:

  • 0.2.0

Constant Summary collapse

ConverterRegistryError =

Since:

  • 0.2.0

Class.new(StandardError)
ConverterNotRegisteredError =

Since:

  • 0.2.0

Class.new(ConverterRegistryError)

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeConverterRegistry

Returns a new instance of ConverterRegistry.

Since:

  • 0.2.0



20
21
22
# File 'lib/evil_events/shared/type_converter/converter_registry.rb', line 20

def initialize
  @converters = EvilEvents::Shared::DependencyContainer.new
end

Instance Attribute Details

#convertersCoucnrrent::Map (readonly)

Returns:

  • (Coucnrrent::Map)

Since:

  • 0.2.0



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

def converters
  @converters
end

Instance Method Details

#register(type_name, coercer) ⇒ Converter

Parameters:

  • type_name (Symbol)
  • coercer (Proc)

Returns:

Raises:

Since:

  • 0.2.0



31
32
33
34
35
36
37
38
# File 'lib/evil_events/shared/type_converter/converter_registry.rb', line 31

def register(type_name, coercer)
  raise ArgumentError unless type_name.is_a?(Symbol)
  raise ArgumentError unless coercer.is_a?(Proc)

  Converter.new(coercer).tap do |converter|
    converters.register(type_name, converter)
  end
end

#resolve(type) ⇒ Mixed Also known as: []

Parameters:

  • type (Mixed)

Returns:

  • (Mixed)

Raises:

Since:

  • 0.2.0



46
47
48
# File 'lib/evil_events/shared/type_converter/converter_registry.rb', line 46

def resolve(type)
  converters[type]
end