Sha256: 71c52e6d51f316b1adc17ae5fe4c51c518fef8b62b73b2a944cc7887e6d102de

Contents?: true

Size: 674 Bytes

Versions: 3

Compression:

Stored size: 674 Bytes

Contents

module Kms
  class ResourceService
    cattr_accessor :resources do
      {}
    end

    NON_TEMPLATABLE_CLASSES = [Page, Template, Asset, User, Snippet].freeze

    def self.register(group, resource, tab_icon_class)
      self.resources[group] ||= {}
      self.resources[group][resource] = tab_icon_class
    end

    def self.unregister(group, resource)
      self.resources[group].delete(resource)
    end

    def self.external_resources_hash
      self.resources.values.map(&:keys).flatten.reject {|r| NON_TEMPLATABLE_CLASSES.include?(r)}.map do |resource_class|
        {type: resource_class.name, title: resource_class.model_name.human}
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
kms-1.2.1 app/services/kms/resource_service.rb
kms-1.2.0 app/services/kms/resource_service.rb
kms-1.1.0 app/services/kms/resource_service.rb