Class: Proscenium::UI::DropdownMenu

Inherits:
Dropdown show all
Defined in:
lib/proscenium/ui/dropdown_menu.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Dropdown

#trigger_template, #view_template

Class Method Details

.source_pathObject



7
8
9
# File 'lib/proscenium/ui/dropdown_menu.rb', line 7

def self.source_path
  Pathname(__FILE__).sub_ext('').join('index.rb')
end

Instance Method Details



16
17
18
# File 'lib/proscenium/ui/dropdown_menu.rb', line 16

def dropdown_template
  menu_template
end

#item(href: nil, disabled: false, **attrs) ⇒ Object



20
21
22
23
24
25
26
27
28
29
# File 'lib/proscenium/ui/dropdown_menu.rb', line 20

def item(href: nil, disabled: false, **attrs, &)
  base = { role: 'menuitem', tabindex: -1, **attrs }
  if disabled
    span(**base, aria_disabled: 'true', &)
  elsif href
    a(href: href, **base, &)
  else
    button(type: :button, **base, &)
  end
end

Raises:

  • (NotImplementedError)


11
12
13
14
# File 'lib/proscenium/ui/dropdown_menu.rb', line 11

def menu_template
  raise NotImplementedError,
        "`#menu_template` must be implemented in subclasses of #{self.class}"
end