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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 220d243f1715ae665a12f8ed497f109209ba10fc5282298b7d9fec956ff99856
4
- data.tar.gz: dd1adb0c2bed5934598a72e2b3d5ffc4c48477b438b2a1c6206351d742868e9e
3
+ metadata.gz: b2d84b31eeff4e7646254d1ad56a798eba7bbdc7022273cac49166c1a9fd25f4
4
+ data.tar.gz: c11ee1cc88e3ef8ee9b51fb2d0e1c3b7b2ef6da7f9194e00ee9ec4a3abf5a55c
5
5
  SHA512:
6
- metadata.gz: e0f933ee0f3af0635c97dfc166e1c416784e0a5b24fac03cadab830179ed36fdce07711fc32e03ba353615de72128534b52d2cbf7b2e6009765043cb8bfb5d7e
7
- data.tar.gz: 87c98103a07b39f4d54e4278042b5f110754ccad21b299b073928945b142c507636e1685ef811f2f93f9f52309b710876d052f0c23c1e7b6ceddbd918f1b9df5
6
+ metadata.gz: f0d3393504b31d23d6c788a300d646488e5d99ce8943d0afb69cf57a9a8b9ae594f6e7f199d869cd6d65399ca2d31c6ebffc94e2c568259fd9cc725cbe0f388c
7
+ data.tar.gz: 0d3d990803202ba5523bfc311ff6acf000eeb7df582670752e311a70e9b3920e88e28f0d47ed6c50d366494a203eec8f67a502315cecea4f6923acef9b988725
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- make_menu (1.1.0)
4
+ make_menu (2.0.0)
5
5
  tty-screen (~> 0.8.2)
6
6
 
7
7
  GEM
@@ -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 ? badge[:on] : badge[:off]
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 = '', on: ' ON '.green_bg.bold, off: ' OFF '.red_bg.dark, &block)
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
@@ -12,14 +12,14 @@ module MakeMenu
12
12
  .align(
13
13
  :right,
14
14
  width: @max_widths[:label]
15
- ).color(field[:label_color])
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
- ).color(field[:value_color])
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, label_color: :normal, value_color: :normal, &block)
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
@@ -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
- display_badges
44
- display_fields
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(field, &block)
97
- fields.add field, &block
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 = '', on: ' ON '.green_bg.bold, off: ' OFF '.red_bg.dark, &block)
109
- badges.add label, on: on, off: off, &block
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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module MakeMenu
4
- VERSION = '1.1.0'
4
+ VERSION = '2.0.0'
5
5
  end
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: 1.1.0
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-09 00:00:00.000000000 Z
11
+ date: 2024-01-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: tty-screen