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 = '', on: ' ON '.green_bg.bold, off: ' OFF '.red_bg.dark, &block) ⇒ Object



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

def add(label = '', on: ' ON '.green_bg.bold, off: ' OFF '.red_bg.dark, &block)
  @badges << {
    label: label,
    on: on,
    off: off,
    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 ? badge[:on] : badge[:off]
    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