Sha256: 49ccf5f22e575aa79cdd45d33e06b259f352e72c3b2ab55d66a8298d13bc9866

Contents?: true

Size: 834 Bytes

Versions: 7

Compression:

Stored size: 834 Bytes

Contents

module Spree
  module Admin
    module MainMenu
      class Item
        attr_reader :key, :label_translation_key, :icon_key, :url, :match_path

        def initialize(key, label_translation_key, url, icon_key, availability_checks, match_path) # rubocop:disable Metrics/ParameterLists
          @key = key
          @label_translation_key = label_translation_key
          @url = url
          @icon_key = icon_key
          @availability_checks = availability_checks
          @match_path = match_path
        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?
          false
        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/item.rb
spree_backend-4.8.3 app/models/spree/admin/main_menu/item.rb
spree_backend-4.8.2 app/models/spree/admin/main_menu/item.rb
spree_backend-4.8.1 app/models/spree/admin/main_menu/item.rb
spree_backend-4.7.2 app/models/spree/admin/main_menu/item.rb
spree_backend-4.7.1 app/models/spree/admin/main_menu/item.rb
spree_backend-4.7.0 app/models/spree/admin/main_menu/item.rb