Sha256: d91bab102a300a6e3cb4c3ac12a6793dcc18ae6765624778f8c1cb8df6720522

Contents?: true

Size: 941 Bytes

Versions: 6

Compression:

Stored size: 941 Bytes

Contents

module PageflowScrolled
  # Register additonal Webpacker packs to be loaded in entries.
  class AdditionalPacks
    # @api private
    def initialize
      @packs = []
    end

    # content_element_type_names option only takes effect for frontend
    # packs.
    def register(path, content_element_type_names: [])
      @packs << AdditionalPack.new(path, content_element_type_names)
    end

    # @api private
    def content_element_type_names
      @packs
        .flat_map(&:content_element_type_names)
        .uniq
    end

    # @api private
    def paths
      @packs.map(&:path)
    end

    # @api private
    def paths_for_content_element_types(type_names)
      @packs.reject { |pack|
        pack.content_element_type_names.present? &&
          (pack.content_element_type_names & type_names).empty?
      }.map(&:path)
    end

    # @api private
    AdditionalPack = Struct.new(:path, :content_element_type_names)
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
pageflow-17.0.4 entry_types/scrolled/lib/pageflow_scrolled/additional_packs.rb
pageflow-17.0.3 entry_types/scrolled/lib/pageflow_scrolled/additional_packs.rb
pageflow-17.0.2 entry_types/scrolled/lib/pageflow_scrolled/additional_packs.rb
pageflow-17.0.1 entry_types/scrolled/lib/pageflow_scrolled/additional_packs.rb
pageflow-17.0.0 entry_types/scrolled/lib/pageflow_scrolled/additional_packs.rb
pageflow-16.2.0 entry_types/scrolled/lib/pageflow_scrolled/additional_packs.rb