Class: Edi::Amazon::JsonListingGenerator::Attributes::AttributeFactory
- Inherits:
-
Object
- Object
- Edi::Amazon::JsonListingGenerator::Attributes::AttributeFactory
- Defined in:
- app/services/edi/amazon/json_listing_generator/attributes/attribute_factory.rb
Class Method Summary collapse
- .attributes_available ⇒ Object
- .build(attribute_name, catalog_item:, variation:, language_tag:, enum_mapper: nil, marketplace_id: nil, fba: nil) ⇒ Object
Class Method Details
.attributes_available ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 |
# File 'app/services/edi/amazon/json_listing_generator/attributes/attribute_factory.rb', line 19 def self.attributes_available Edi::Amazon::JsonListingGenerator::Attributes.constants.filter_map do |const| const = const_get("Edi::Amazon::JsonListingGenerator::Attributes::#{const}") next unless const.is_a?(Class) attribute_name = const.to_s.demodulize.underscore next if attribute_name == 'attribute_factory' || attribute_name.start_with?('base_') attribute_name end.sort end |
.build(attribute_name, catalog_item:, variation:, language_tag:, enum_mapper: nil, marketplace_id: nil, fba: nil) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 |
# File 'app/services/edi/amazon/json_listing_generator/attributes/attribute_factory.rb', line 6 def self.build(attribute_name, catalog_item:, variation:, language_tag:, enum_mapper: nil, marketplace_id: nil, fba: nil) # Note, use camelize here to preserve plural in names, don't use classify which will singularize attribute_class = "Edi::Amazon::JsonListingGenerator::Attributes::#{attribute_name.to_s.camelize}".constantize attribute_class.new( catalog_item:, variation:, language_tag:, enum_mapper:, marketplace_id:, fba: ) end |