class ViewComponent::Storybook::Slots::SlotConfig

Attributes

content_block[R]
param[R]
slot_method_args[R]
slot_name[R]

Public Class Methods

from_component(component_class, slot_name, param, *args, **kwargs, &block) click to toggle source
# File lib/view_component/storybook/slots/slot_config.rb, line 18
def self.from_component(component_class, slot_name, param, *args, **kwargs, &block)
  slot_method_args =
    MethodArgs::ControlMethodArgs
    .new(component_class.instance_method(slot_name), *args, **kwargs)
    .with_param_prefix(param)
  new(slot_name, slot_method_args, param, block)
end
new(slot_name, slot_method_args, param, content_block) click to toggle source
# File lib/view_component/storybook/slots/slot_config.rb, line 11
def initialize(slot_name, slot_method_args, param, content_block)
  @slot_name = slot_name
  @slot_method_args = slot_method_args
  @param = param
  @content_block = content_block
end

Public Instance Methods

content_param() click to toggle source
# File lib/view_component/storybook/slots/slot_config.rb, line 38
def content_param
  "#{param}__content".to_sym
end
controls() click to toggle source
# File lib/view_component/storybook/slots/slot_config.rb, line 32
def controls
  list = slot_method_args.controls.dup
  list << content_control if content_control
  list
end
slot(componeont, params) click to toggle source
# File lib/view_component/storybook/slots/slot_config.rb, line 26
def slot(componeont, params)
  resolved_method_args = slot_method_args.resolve_method_args(params)
  story_content_block = resolve_content_block(params)
  Slot.new(componeont, slot_name, resolved_method_args, story_content_block)
end