class EvilEvents::Shared::TypeConverter::ConverterRegistry

@api public @since 0.2.0

Constants

ConverterNotRegisteredError

@since 0.2.0

ConverterRegistryError

@since 0.2.0

Attributes

converters[R]

@return [Coucnrrent::Map]

@api public @since 0.2.0

Public Class Methods

new() click to toggle source

@api public @since 0.2.0

# File lib/evil_events/shared/type_converter/converter_registry.rb, line 20
def initialize
  @converters = EvilEvents::Shared::DependencyContainer.new
end

Public Instance Methods

[](type)
Alias for: resolve
register(type_name, coercer) click to toggle source

@param type_name [Symbol] @param coercer [Proc] @raise [ArgumentError] @return [Converter]

@api public @since 0.2.0

# 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) click to toggle source

@param type [Mixed] @raise [ConverterNotRegisteredError] @return [Mixed]

@api public @since 0.2.0

# File lib/evil_events/shared/type_converter/converter_registry.rb, line 46
def resolve(type)
  converters[type]
end
Also aliased as: []