Class: RubyUI::Sidebar

Inherits:
Base
  • Object
show all
Defined in:
lib/ruby_ui/sidebar/sidebar.rb

Constant Summary collapse

SIDES =
i[left right].freeze
VARIANTS =
i[sidebar floating inset].freeze
COLLAPSIBLES =
i[offcanvas icon none].freeze

Constants inherited from Base

Base::TAILWIND_MERGER

Instance Attribute Summary

Attributes inherited from Base

#attrs

Instance Method Summary collapse

Constructor Details

#initialize(side: :left, variant: :sidebar, collapsible: :offcanvas, open: true, **attrs) ⇒ Sidebar

Returns a new instance of Sidebar.

Raises:

  • (ArgumentError)


9
10
11
12
13
14
15
16
17
18
19
# File 'lib/ruby_ui/sidebar/sidebar.rb', line 9

def initialize(side: :left, variant: :sidebar, collapsible: :offcanvas, open: true, **attrs)
  raise ArgumentError, "Invalid side: #{side}." unless SIDES.include?(side.to_sym)
  raise ArgumentError "Invalid variant: #{variant}." unless VARIANTS.include?(variant.to_sym)
  raise ArgumentError, "Invalid collapsible: #{collapsible}." unless COLLAPSIBLES.include?(collapsible.to_sym)

  @side = side.to_sym
  @variant = variant.to_sym
  @collapsible = collapsible.to_sym
  @open = open
  super(**attrs)
end

Instance Method Details

#view_templateObject



21
22
23
24
25
26
27
# File 'lib/ruby_ui/sidebar/sidebar.rb', line 21

def view_template(&)
  if @collapsible == :none
    NonCollapsibleSidebar(**attrs, &)
  else
    CollapsibleSidebar(side: @side, variant: @variant, collapsible: @collapsible, open: @open, **attrs, &)
  end
end