Class: PackAPI::Mapping::NormalizedAPIAttribute
- Inherits:
-
Object
- Object
- PackAPI::Mapping::NormalizedAPIAttribute
- Defined in:
- lib/pack_api/mapping/normalized_api_attribute.rb
Constant Summary collapse
- PLURAL_IDS =
'_ids'- SINGULAR_ID =
'_id'
Instance Attribute Summary collapse
-
#api_attribute_names ⇒ Object
readonly
Returns the value of attribute api_attribute_names.
Instance Method Summary collapse
- #id_for_collection_association?(attribute_name) ⇒ Boolean
- #id_for_resource_association?(attribute_name) ⇒ Boolean
-
#initialize(api_attribute_names) ⇒ NormalizedAPIAttribute
constructor
A new instance of NormalizedAPIAttribute.
- #normalize(attribute_name) ⇒ Object
- #normalize_collection_association_reference(attribute_name) ⇒ Object
- #normalize_resource_association_reference(attribute_name) ⇒ Object
Constructor Details
#initialize(api_attribute_names) ⇒ NormalizedAPIAttribute
Returns a new instance of NormalizedAPIAttribute.
10 11 12 |
# File 'lib/pack_api/mapping/normalized_api_attribute.rb', line 10 def initialize(api_attribute_names) @api_attribute_names = api_attribute_names end |
Instance Attribute Details
#api_attribute_names ⇒ Object (readonly)
Returns the value of attribute api_attribute_names.
8 9 10 |
# File 'lib/pack_api/mapping/normalized_api_attribute.rb', line 8 def api_attribute_names @api_attribute_names end |
Instance Method Details
#id_for_collection_association?(attribute_name) ⇒ Boolean
28 29 30 |
# File 'lib/pack_api/mapping/normalized_api_attribute.rb', line 28 def id_for_collection_association?(attribute_name) api_attribute_names.exclude?(attribute_name) && attribute_name.to_s.end_with?(PLURAL_IDS) # && api_attribute_names.include?(it_without_id_suffix) end |
#id_for_resource_association?(attribute_name) ⇒ Boolean
36 37 38 |
# File 'lib/pack_api/mapping/normalized_api_attribute.rb', line 36 def id_for_resource_association?(attribute_name) api_attribute_names.exclude?(attribute_name) && attribute_name.to_s.end_with?(SINGULAR_ID) # && api_attribute_names.include?(it_without_id_suffix) end |
#normalize(attribute_name) ⇒ Object
14 15 16 17 18 19 20 21 22 |
# File 'lib/pack_api/mapping/normalized_api_attribute.rb', line 14 def normalize(attribute_name) if id_for_resource_association?(attribute_name) normalize_resource_association_reference(attribute_name) elsif id_for_collection_association?(attribute_name) normalize_collection_association_reference(attribute_name) else attribute_name end end |
#normalize_collection_association_reference(attribute_name) ⇒ Object
24 25 26 |
# File 'lib/pack_api/mapping/normalized_api_attribute.rb', line 24 def normalize_collection_association_reference(attribute_name) :"#{attribute_name.to_s.delete_suffix(PLURAL_IDS)}s" end |
#normalize_resource_association_reference(attribute_name) ⇒ Object
32 33 34 |
# File 'lib/pack_api/mapping/normalized_api_attribute.rb', line 32 def normalize_resource_association_reference(attribute_name) attribute_name.to_s.delete_suffix(SINGULAR_ID).to_sym end |