make_menu 1.1.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
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