Sha256: 347e2c7d86c02b838477f279e6faff0a3311b7dbf0ad729cd13d1e227b736c38

Contents?: true

Size: 755 Bytes

Versions: 97

Compression:

Stored size: 755 Bytes

Contents

# frozen_string_literal: true

module Primer
  # :nodoc:
  module ExperimentalSlotHelpers
    def self.included(base)
      base.extend(ClassMethods)
    end

    # :nodoc:
    module ClassMethods
      def add_polymorphic_slot_type(slot_name:, type:, callable:)
        slot_def = registered_slots[slot_name]
        raise "Unknown slot '#{slot_name}'" unless slot_def

        poly_def = define_slot(
          type,
          collection: slot_def[:collection],
          callable: callable
        )

        registered_slots[slot_name][:renderable_hash][type] = poly_def

        define_method(:"with_#{type}") do |**system_arguments, &block|
          set_slot(slot_name, poly_def, **system_arguments, &block)
        end
      end
    end
  end
end

Version data entries

97 entries across 97 versions & 2 rubygems

Version Path
openproject-primer_view_components-0.48.2 app/lib/primer/experimental_slot_helpers.rb
openproject-primer_view_components-0.48.1 app/lib/primer/experimental_slot_helpers.rb
openproject-primer_view_components-0.48.0 app/lib/primer/experimental_slot_helpers.rb
openproject-primer_view_components-0.47.1 app/lib/primer/experimental_slot_helpers.rb
openproject-primer_view_components-0.47.0 app/lib/primer/experimental_slot_helpers.rb
primer_view_components-0.34.0 app/lib/primer/experimental_slot_helpers.rb
openproject-primer_view_components-0.46.1 app/lib/primer/experimental_slot_helpers.rb
openproject-primer_view_components-0.46.0 app/lib/primer/experimental_slot_helpers.rb
openproject-primer_view_components-0.45.0 app/lib/primer/experimental_slot_helpers.rb
openproject-primer_view_components-0.44.3 app/lib/primer/experimental_slot_helpers.rb
openproject-primer_view_components-0.44.2 app/lib/primer/experimental_slot_helpers.rb
openproject-primer_view_components-0.44.1 app/lib/primer/experimental_slot_helpers.rb
primer_view_components-0.33.0 app/lib/primer/experimental_slot_helpers.rb
openproject-primer_view_components-0.44.0 app/lib/primer/experimental_slot_helpers.rb
openproject-primer_view_components-0.43.1 app/lib/primer/experimental_slot_helpers.rb
openproject-primer_view_components-0.43.0 app/lib/primer/experimental_slot_helpers.rb
primer_view_components-0.32.0 app/lib/primer/experimental_slot_helpers.rb
openproject-primer_view_components-0.42.0 app/lib/primer/experimental_slot_helpers.rb
primer_view_components-0.31.0 app/lib/primer/experimental_slot_helpers.rb
openproject-primer_view_components-0.41.1 app/lib/primer/experimental_slot_helpers.rb