Class: Git::Switcher::Menu

Inherits:
Object
  • Object
show all
Defined in:
lib/git/switcher/menu.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(repo) ⇒ Menu

Returns a new instance of Menu.



35
36
37
38
39
40
# File 'lib/git/switcher/menu.rb', line 35

def initialize(repo)
  @repo = repo
  @submenus = submenus
  @menu_items = @submenus.map(&:menu_items).flatten
  @lookup = Hash[@menu_items.map(&:shortcut).zip(@menu_items)]
end

Class Method Details

.for(repo) ⇒ Object



31
32
33
# File 'lib/git/switcher/menu.rb', line 31

def self.for(repo)
  new(repo)
end

Instance Method Details

#[](shortcut) ⇒ Object



42
43
44
# File 'lib/git/switcher/menu.rb', line 42

def [](shortcut)
  @lookup[shortcut]
end

#default_menu_itemObject



50
51
52
# File 'lib/git/switcher/menu.rb', line 50

def default_menu_item
  head_menu_item&.next
end

#head_menu_itemObject



46
47
48
# File 'lib/git/switcher/menu.rb', line 46

def head_menu_item
  @menu_items.find(&:head?)
end

#to_sObject



54
55
56
# File 'lib/git/switcher/menu.rb', line 54

def to_s
  @submenus.join("\n")
end