Sha256: b7881d232ee3b1ebdb29a1a1ef187eb0284dd87572be45a1d3f3840353d2ff00

Contents?: true

Size: 933 Bytes

Versions: 1

Compression:

Stored size: 933 Bytes

Contents

module Sprangular
  class ProductSerializer < BaseSerializer
    attributes :id, :name, :description, :price, :display_price,
               :available_on, :slug, :meta_description, :meta_keywords,
               :shipping_category_id, :taxon_ids, :has_variants

    has_one :master, serializer: Sprangular::SmallVariantSerializer

    has_many :variants, embed: :objects,
                        serializer: Sprangular::SmallVariantSerializer

    has_many :option_types, serializer: Sprangular::OptionTypeSerializer

    has_many :product_properties, embed: :objects,
                                  serializer: Sprangular::ProductPropertySerializer

    has_many :classifications, embed: :objects,
                               serializer: Sprangular::ClassificationSerializer

    # rubocop:disable Style/PredicateName
    def has_variants
      object.has_variants?
    end
    # rubocop:enable Style/PredicateName
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
sprangular-0.1.0 app/serializers/sprangular/product_serializer.rb