class Git::Switcher::Menu

Public Class Methods

for(repo) click to toggle source
# File lib/git/switcher/menu.rb, line 31
def self.for(repo)
  new(repo)
end
new(repo) click to toggle source
# 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

Public Instance Methods

[](shortcut) click to toggle source
# File lib/git/switcher/menu.rb, line 42
def [](shortcut)
  @lookup[shortcut]
end
default_menu_item() click to toggle source
# File lib/git/switcher/menu.rb, line 50
def default_menu_item
  head_menu_item&.next
end
head_menu_item() click to toggle source
# File lib/git/switcher/menu.rb, line 46
def head_menu_item
  @menu_items.find(&:head?)
end
to_s() click to toggle source
# File lib/git/switcher/menu.rb, line 54
def to_s
  @submenus.join("\n")
end

Private Instance Methods

local_branches() click to toggle source
# File lib/git/switcher/menu.rb, line 64
def local_branches
  @repo.branches.find_all(&:local?)
end
menu_items_for(references, shortcuts) click to toggle source
remote_branches() click to toggle source
# File lib/git/switcher/menu.rb, line 60
def remote_branches
  @repo.branches.find_all(&:remote?)
end
submenu_for(label, references, shortcuts) click to toggle source
submenus() click to toggle source
tags() click to toggle source
# File lib/git/switcher/menu.rb, line 68
def tags
  @repo.tags # TODO: distinguish between annotated and lightweight tags
end