make_menu 1.1.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/lib/make_menu/badge_set.rb +2 -4
- data/lib/make_menu/field_set.rb +14 -6
- data/lib/make_menu/menu.rb +18 -7
- data/lib/make_menu/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b2d84b31eeff4e7646254d1ad56a798eba7bbdc7022273cac49166c1a9fd25f4
|
4
|
+
data.tar.gz: c11ee1cc88e3ef8ee9b51fb2d0e1c3b7b2ef6da7f9194e00ee9ec4a3abf5a55c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f0d3393504b31d23d6c788a300d646488e5d99ce8943d0afb69cf57a9a8b9ae594f6e7f199d869cd6d65399ca2d31c6ebffc94e2c568259fd9cc725cbe0f388c
|
7
|
+
data.tar.gz: 0d3d990803202ba5523bfc311ff6acf000eeb7df582670752e311a70e9b3920e88e28f0d47ed6c50d366494a203eec8f67a502315cecea4f6923acef9b988725
|
data/Gemfile.lock
CHANGED
data/lib/make_menu/badge_set.rb
CHANGED
@@ -9,7 +9,7 @@ module MakeMenu
|
|
9
9
|
row = ''
|
10
10
|
@badges.each do |badge|
|
11
11
|
label = badge[:label]
|
12
|
-
value = badge[:handler].call
|
12
|
+
value = badge[:handler].call
|
13
13
|
if row.decolor.size + label.decolor.size + value.decolor.size >= (0.7 * ::TTY::Screen.cols)
|
14
14
|
rows << row
|
15
15
|
row = ''
|
@@ -22,11 +22,9 @@ module MakeMenu
|
|
22
22
|
puts
|
23
23
|
end
|
24
24
|
|
25
|
-
def add(label = '',
|
25
|
+
def add(label = '', &block)
|
26
26
|
@badges << {
|
27
27
|
label: label,
|
28
|
-
on: on,
|
29
|
-
off: off,
|
30
28
|
handler: block
|
31
29
|
}
|
32
30
|
end
|
data/lib/make_menu/field_set.rb
CHANGED
@@ -12,14 +12,14 @@ module MakeMenu
|
|
12
12
|
.align(
|
13
13
|
:right,
|
14
14
|
width: @max_widths[:label]
|
15
|
-
)
|
15
|
+
)
|
16
16
|
|
17
17
|
value_cel = field[:value]
|
18
18
|
.align(
|
19
19
|
:left,
|
20
20
|
width: @max_widths[:value],
|
21
21
|
pad_right: true
|
22
|
-
)
|
22
|
+
)
|
23
23
|
|
24
24
|
puts "#{label_cell}#{value_cel}".align(:center)
|
25
25
|
end
|
@@ -40,11 +40,19 @@ module MakeMenu
|
|
40
40
|
end
|
41
41
|
end
|
42
42
|
|
43
|
-
def add(label = nil,
|
43
|
+
def add(label = '', value_from_file: nil, color: :normal, none: '[none]'.dark, &block)
|
44
|
+
if value_from_file
|
45
|
+
block = lambda do
|
46
|
+
if File.exists? value_from_file
|
47
|
+
return File.read(value_from_file).strip.color(color)
|
48
|
+
else
|
49
|
+
return none
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
44
54
|
@fields << {
|
45
|
-
label: label
|
46
|
-
label_color: label_color,
|
47
|
-
value_color: value_color,
|
55
|
+
label: label,
|
48
56
|
handler: block
|
49
57
|
}
|
50
58
|
end
|
data/lib/make_menu/menu.rb
CHANGED
@@ -20,7 +20,8 @@ module MakeMenu
|
|
20
20
|
@options = {
|
21
21
|
group_title_color: :underline,
|
22
22
|
clear_screen: true,
|
23
|
-
pause_on_success: false
|
23
|
+
pause_on_success: false,
|
24
|
+
badges_first: true
|
24
25
|
}
|
25
26
|
@highlights = {}
|
26
27
|
|
@@ -40,8 +41,14 @@ module MakeMenu
|
|
40
41
|
system 'clear' if clear_screen?
|
41
42
|
|
42
43
|
display_header
|
43
|
-
|
44
|
-
|
44
|
+
|
45
|
+
if badges_first?
|
46
|
+
display_badges
|
47
|
+
display_fields
|
48
|
+
else
|
49
|
+
display_fields
|
50
|
+
display_badges
|
51
|
+
end
|
45
52
|
|
46
53
|
puts colorize(MakeMenu::Text::Table.new(groups).to_s)
|
47
54
|
puts
|
@@ -93,8 +100,8 @@ module MakeMenu
|
|
93
100
|
end
|
94
101
|
end
|
95
102
|
|
96
|
-
def add_field(
|
97
|
-
fields.add
|
103
|
+
def add_field(label = '', value_from_file: nil, color: :normal, none: '[none]'.dark, &block)
|
104
|
+
fields.add label, value_from_file: value_from_file, color: color, none: none, &block
|
98
105
|
end
|
99
106
|
|
100
107
|
def fields
|
@@ -105,8 +112,8 @@ module MakeMenu
|
|
105
112
|
@field_set.display if @field_set
|
106
113
|
end
|
107
114
|
|
108
|
-
def add_badge(label = '',
|
109
|
-
badges.add label,
|
115
|
+
def add_badge(label = '', &block)
|
116
|
+
badges.add label, &block
|
110
117
|
end
|
111
118
|
|
112
119
|
def badges
|
@@ -149,6 +156,10 @@ module MakeMenu
|
|
149
156
|
options[:pause_on_success]
|
150
157
|
end
|
151
158
|
|
159
|
+
def badges_first?
|
160
|
+
options[:badges_first]
|
161
|
+
end
|
162
|
+
|
152
163
|
def colorize(text)
|
153
164
|
highlights.each do |word, color|
|
154
165
|
case color
|
data/lib/make_menu/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: make_menu
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Barri Mason
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-01-
|
11
|
+
date: 2024-01-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: tty-screen
|