Class: MakeMenu::BadgeSet

Inherits:
Object
  • Object
show all
Defined in:
lib/make_menu/badge_set.rb

Instance Method Summary collapse

Constructor Details

#initializeBadgeSet

Returns a new instance of BadgeSet.



3
4
5
# File 'lib/make_menu/badge_set.rb', line 3

def initialize
  @badges = []
end

Instance Method Details

#add(label = '', &block) ⇒ Object



25
26
27
28
29
30
# File 'lib/make_menu/badge_set.rb', line 25

def add(label = '', &block)
  @badges << {
    label: label,
    handler: block
  }
end

#displayObject



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/make_menu/badge_set.rb', line 7

def display
  rows = []
  row = ''
  @badges.each do |badge|
    label = badge[:label]
    value = badge[:handler].call
    if row.decolor.size + label.decolor.size + value.decolor.size >= (0.7 * ::TTY::Screen.cols)
      rows << row
      row = ''
    end
    row += " #{label}#{value} "
  end
  rows << row

  puts rows.join("\n\n").align_block(:center)
  puts
end