Class: AMA::Entity::Mapper::Type::Resolver

Inherits:
Object
  • Object
show all
Includes:
Mixin::Errors
Defined in:
lib/ama-entity-mapper/type/resolver.rb

Overview

This class is responsible for resolution of simple type definitions, converting definitions like

Array, T: [NilClass, [Hash, K: Symbol, V: Integer]]

into real type hierarchy

Instance Method Summary collapse

Methods included from Mixin::Errors

#compliance_error, #mapping_error, #raise_if_internal, #validation_error

Constructor Details

#initialize(registry) ⇒ Resolver

Returns a new instance of Resolver.

Parameters:



19
20
21
# File 'lib/ama-entity-mapper/type/resolver.rb', line 19

def initialize(registry)
  @registry = registry
end

Instance Method Details

#resolve(definition) ⇒ Object



23
24
25
26
27
28
29
30
# File 'lib/ama-entity-mapper/type/resolver.rb', line 23

def resolve(definition)
  definition = [definition] unless definition.is_a?(Enumerable)
  resolve_definition(definition)
rescue StandardError => parent
  message = "Definition #{definition} resolution resulted " \
    "in error: #{parent}"
  compliance_error(message)
end