Sha256: f29620cf6479a5e3927b33dddaadc247cc813028955490c10602eccc6b8a6f5e

Contents?: true

Size: 795 Bytes

Versions: 7

Compression:

Stored size: 795 Bytes

Contents

module Spree
  module Admin
    module MainMenu
      class Section
        include ::Spree::Admin::ItemManager

        attr_reader :key, :label_translation_key, :icon_key, :items

        def initialize(key, label_translation_key, icon_key, availability_checks, items)
          @key = key
          @label_translation_key = label_translation_key
          @icon_key = icon_key
          @availability_checks = availability_checks
          @items = items
        end

        def available?(current_ability, resource)
          return true if @availability_checks.empty?

          result = @availability_checks.map { |check| check.call(current_ability, resource) }

          result.all?(true)
        end

        def children?
          @items.any?
        end
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
spree_backend-4.8.4 app/models/spree/admin/main_menu/section.rb
spree_backend-4.8.3 app/models/spree/admin/main_menu/section.rb
spree_backend-4.8.2 app/models/spree/admin/main_menu/section.rb
spree_backend-4.8.1 app/models/spree/admin/main_menu/section.rb
spree_backend-4.7.2 app/models/spree/admin/main_menu/section.rb
spree_backend-4.7.1 app/models/spree/admin/main_menu/section.rb
spree_backend-4.7.0 app/models/spree/admin/main_menu/section.rb