Module: SpreeCmCommissioner::V2::Storefront::MenuSerializerDecorator

Defined in:
app/serializers/spree_cm_commissioner/v2/storefront/menu_serializer_decorator.rb

Class Method Summary collapse

Class Method Details

.prepended(base) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'app/serializers/spree_cm_commissioner/v2/storefront/menu_serializer_decorator.rb', line 5

def self.prepended(base)
  base.attributes :sprite_url

  base.attribute :icon_positions do |menu|
    positions = menu.sprite_positions || {}
    ordered_items = menu.menu_items.where.not(parent_id: nil).order(:lft)
    ordered_items.each_with_object({}) do |item, hash|
      id = item.id.to_s
      next unless positions.key?(id)

      pos = positions[id]
      hash[id] = {
        'x' => pos['x'],
        'y' => pos['y'],
        'width' => pos['width'],
        'height' => pos['height']
      }
    end
  end
end