Class: AMA::Entity::Mapper::Engine
- Inherits:
-
Object
- Object
- AMA::Entity::Mapper::Engine
- Includes:
- Mixin::Errors
- Defined in:
- lib/ama-entity-mapper/engine.rb,
lib/ama-entity-mapper/engine/recursive_mapper.rb,
lib/ama-entity-mapper/engine/recursive_normalizer.rb
Overview
Main, user-unfriendly, library-entrypoint class. Provides interface for mapping one type into another.
Defined Under Namespace
Classes: RecursiveMapper, RecursiveNormalizer
Instance Attribute Summary collapse
-
#registry ⇒ Object
readonly
Returns the value of attribute registry.
-
#resolver ⇒ Object
readonly
Returns the value of attribute resolver.
Instance Method Summary collapse
- #[](klass) ⇒ Object
-
#initialize(registry = nil) ⇒ Engine
constructor
A new instance of Engine.
- #map(source, *types, **context_options) ⇒ Object
-
#normalize(object, **context_options) ⇒ Object
Normalizes object to primitive data structures.
- #register(klass) ⇒ Object
-
#resolve(definition) ⇒ Object
Resolves provided definition, creating type hierarchy.
Methods included from Mixin::Errors
#compliance_error, #mapping_error, #raise_if_internal, #validation_error
Constructor Details
#initialize(registry = nil) ⇒ Engine
Returns a new instance of Engine.
31 32 33 34 35 36 |
# File 'lib/ama-entity-mapper/engine.rb', line 31 def initialize(registry = nil) @registry = registry || Type::Registry.new @resolver = Type::Resolver.new(@registry) @normalizer = RecursiveNormalizer.new(@registry) @mapper = RecursiveMapper.new(@registry) end |
Instance Attribute Details
#registry ⇒ Object (readonly)
Returns the value of attribute registry.
25 26 27 |
# File 'lib/ama-entity-mapper/engine.rb', line 25 def registry @registry end |
#resolver ⇒ Object (readonly)
Returns the value of attribute resolver.
28 29 30 |
# File 'lib/ama-entity-mapper/engine.rb', line 28 def resolver @resolver end |
Instance Method Details
#[](klass) ⇒ Object
66 67 68 |
# File 'lib/ama-entity-mapper/engine.rb', line 66 def [](klass) @registry[klass] end |
#map(source, *types, **context_options) ⇒ Object
41 42 43 44 45 |
# File 'lib/ama-entity-mapper/engine.rb', line 41 def map(source, *types, **) context = create_context() types = normalize_types(types, context) @mapper.map(source, types, context) end |
#normalize(object, **context_options) ⇒ Object
Normalizes object to primitive data structures.
56 57 58 |
# File 'lib/ama-entity-mapper/engine.rb', line 56 def normalize(object, **) @normalizer.normalize(object, create_context()) end |
#register(klass) ⇒ Object
61 62 63 |
# File 'lib/ama-entity-mapper/engine.rb', line 61 def register(klass) @registry[klass] || @registry.register(Type::Analyzer.analyze(klass)) end |
#resolve(definition) ⇒ Object
Resolves provided definition, creating type hierarchy.
49 50 51 |
# File 'lib/ama-entity-mapper/engine.rb', line 49 def resolve(definition) @resolver.resolve(definition) end |