Module: PackAPI::Mapping

Defined in:
lib/pack_api/mapping/attribute_map.rb,
lib/pack_api.rb,
lib/pack_api/mapping/filter_map.rb,
lib/pack_api/mapping/null_transformer.rb,
lib/pack_api/mapping/abstract_transformer.rb,
lib/pack_api/mapping/value_object_factory.rb,
lib/pack_api/mapping/attribute_map_registry.rb,
lib/pack_api/mapping/normalized_api_attribute.rb,
lib/pack_api/mapping/attribute_hash_transformer.rb,
lib/pack_api/mapping/api_to_model_attributes_transformer.rb,
lib/pack_api/mapping/model_to_api_attributes_transformer.rb,
lib/pack_api/mapping/error_hash_to_api_attributes_transformer.rb

Overview

Map (convert) the names of attributes presented on one side of an API to those required on the other side. Handles 3 scenarios:

 1. create/update API endpoints
     IN: attribute Hash with names conforming to the ValueObject type attributes*
     OUT: attribute Hash with names conforming to the ActiveRecord model type

     * generally true; except when it's not. For example, if the ValueObject type has an attribute
       named "user", and the ActiveRecord model has an attribute named "user", typically this is set during
       create/update calls by passing in the "user_id" attribute.

2. converting an ActiveRecord model as a ValueObject
    IN: ActiveRecord model instance
    OUT: attribute Hash with names conforming to the ValueObject type attributes

3. converting an ActiveModel::Errors instance to an attribute Hash
   IN: ActiveModel::Errors instance
   OUT: attribute Hash with names conforming to the ValueObject type attributes*

   * generally true; except when it's not. For example, if the ValueObject type has an attribute
     named "user", and the ActiveRecord model has an attribute named "user", typically this is set during
     create/update calls by passing in the "user_id" attribute. Therefore, the error hash will have to
     associate the error with the "user_id" attribute (not the "user" attribute).

Defined Under Namespace

Classes: APIToModelAttributesTransformer, AbstractTransformer, AttributeHashTransformer, AttributeMap, AttributeMapRegistry, ErrorHashToAPIAttributesTransformer, FilterMap, ModelToAPIAttributesTransformer, NormalizedAPIAttribute, NullTransformer, ValueObjectFactory