benry-cmdopt 2.0.2 → 2.1.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: 1c4c465878a37b15c65090a251e576059ac389d2a3457379980e8bb353e43a97
4
- data.tar.gz: e0607fa34db598eb81014b7ed63bebe82985ad20a9a311e7be6b0c6c52f01a88
3
+ metadata.gz: 5e37b3eb5a8294bfae3627f384720f843e2c6ae9c79ec0cc704b732368d46437
4
+ data.tar.gz: 3a3b34226485ae5c0aaa3f3b90d6ba281b34f7843d5e03179235784af0fc2467
5
5
  SHA512:
6
- metadata.gz: 01cc7b1487d89b9777478064f068c31b847038da6fda2841b9b59c0ee55fc9d62a4d3dac7eae5964c9b25fd0da5e52459c27cbb8eac0412293c0b4de8fb910d9
7
- data.tar.gz: 934952f9cc686d6014c69034b7aa5810341266b627f5f22719da543baf9f38267cab4214a0aeae8315bb601bc72f96597d976896977c1151fff50c37fe8dce59
6
+ metadata.gz: f1aae8384f952ddbc0ba5408e39e5b289d09c9b9e768a4cee237c723d7f0bef459b2ab7c8e3639705e8495790fb02bb6fced99bf9a3676e772d4b0c2d622961d
7
+ data.tar.gz: 737074f681fa450d2e0fc9b82b85aedba8088db313b522c32b1c01cae6a68ed091da08ca437f58e543b0a6d896618c42a078ded25bba9fba971c3e3ec90bc82f
data/CHANGES.md CHANGED
@@ -2,6 +2,14 @@ CHANGES
2
2
  =======
3
3
 
4
4
 
5
+ Release 2.1.0 (2023-10-15)
6
+ --------------------------
7
+
8
+ * [enhance] Add `hidden: true` keyword argument to `Benry::Schema#add()` and `Benry::Facade#add()`. This keyword argument makes the option as hidden option.
9
+ * [change] Option which name stars with '_' is now not regarded as hidden option. Use `hidden: true` instead.
10
+ * [enhance] Add `important: (true|false)` keyword argument to `Benry::Schema#add()` and `Benry::Facade#add()`. This keyword argument makes help message of the option printed in decorated format.
11
+
12
+
5
13
  Release 2.0.2 (2023-10-12)
6
14
  --------------------------
7
15
 
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Benry-CmdOpt
2
2
 
3
- ($Release: 2.0.2 $)
3
+ ($Release: 2.1.0 $)
4
4
 
5
5
 
6
6
 
@@ -38,6 +38,7 @@ Benry-CmdOpt requires Ruby >= 2.3.
38
38
  * [Global Options with Sub-Commands](#global-options-with-sub-commands)
39
39
  * [Detailed Description of Option](#detailed-description-of-option)
40
40
  * [Option Tag](#option-tag)
41
+ * [Important Options](#important-options)
41
42
  * [Not Supported](#not-supported)
42
43
  * [Internal Classes](#internal-classes)
43
44
  * [License and Copyright](#license-and-copyright)
@@ -470,22 +471,20 @@ p options #=> {:lib=>["foo", "bar", "baz"]}
470
471
 
471
472
  Benry-CmdOpt regards the following options as hidden.
472
473
 
473
- * Key name starts with `_` (for example `:_debug`).
474
+ * Keyword argument `hidden: true` is passed to `.add()` method.
474
475
  * Or description is nil.
475
476
 
476
- The former is better than the latter, because even hidden option should have its own description.
477
-
478
- These hidden options are not included in help message.
477
+ Hidden options are not included in help message.
479
478
 
480
479
  ```ruby
481
480
  require 'benry/cmdopt'
482
481
  cmdopt = Benry::CmdOpt.new
483
- cmdopt.add(:help , '-h', "help message")
484
- cmdopt.add(:debug, '-D', nil) # hidden (because description is nil)
485
- cmdopt.add(:_log , '-L', "logging") # hidden (because key starts with '_')
482
+ cmdopt.add(:help , '-h', "help message")
483
+ cmdopt.add(:logging, '-L', "logging", hidden: true) # hidden
484
+ cmdopt.add(:debug , '-D', nil) # hidden (desc is nil)
486
485
  puts cmdopt.to_s()
487
486
 
488
- ### output (neither '-D' nor '-L' is shown because hidden options)
487
+ ### output (neither '-L' nor '-D' is shown because hidden options)
489
488
  # -h : help message
490
489
  ```
491
490
 
@@ -497,8 +496,8 @@ puts cmdopt.to_s(all: true) # or: cmdopt.to_s(nil, all: true)
497
496
 
498
497
  ### output
499
498
  # -h : help message
500
- # -D :
501
499
  # -L : logging
500
+ # -D :
502
501
  ```
503
502
 
504
503
 
@@ -613,11 +612,37 @@ end
613
612
  ```
614
613
 
615
614
 
615
+ ### Important Options
616
+
617
+ You can specify that the option is important or not.
618
+ Pass `important: true` or `important: false` keyword argument to `#add()` method of `Benry::CmdOpt` or `Benry::CmdOpt::Schema` object.
619
+
620
+ The help message of options is decorated according to value of `important:` keyword argument.
621
+
622
+ * Printed in bold font when `important: true` specified to the option.
623
+ * Printed in gray color when `important: false` specified to the option.
624
+
625
+ ```ruby
626
+ require 'benry/cmdopt'
627
+
628
+ cmdopt = Benry::CmdOpt.new()
629
+ cmdopt.add(:help , "-h", "help message")
630
+ cmdopt.add(:verbose, "-v", "verbose mode", important: true) # !!!
631
+ cmdopt.add(:debug , "-D", "debug mode" , important: false) # !!!
632
+ puts cmdopt.option_help()
633
+
634
+ ## output:
635
+ # -h : help message
636
+ # -v : verbose mode # bold font
637
+ # -D : debug mode # gray color
638
+ ```
639
+
640
+
616
641
  ### Not Supported
617
642
 
618
- * default value
643
+ * default value when the option not specified in command-line
619
644
  * `--no-xxx` style option
620
- * bash/zsh completion
645
+ * bash/zsh completion (may be supported in the future)
621
646
  * I18N of error message (may be supported in the future)
622
647
 
623
648
 
data/benry-cmdopt.gemspec CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |spec|
4
4
  spec.name = "benry-cmdopt"
5
- spec.version = "$Release: 2.0.2 $".split()[1]
5
+ spec.version = "$Release: 2.1.0 $".split()[1]
6
6
  spec.author = "kwatch"
7
7
  spec.email = "kwatch@gmail.com"
8
8
  spec.platform = Gem::Platform::RUBY
@@ -21,7 +21,7 @@
21
21
  <ul class="nav">
22
22
  </ul>
23
23
  </nav>
24
- <p>($Release: 2.0.2 $)</p>
24
+ <p>($Release: 2.1.0 $)</p>
25
25
  <section class="section" id="whats-this">
26
26
  <h2>What's This?</h2>
27
27
  <p>Benry-CmdOpt is a command option parser library, like <code>optparse.rb</code>
@@ -53,6 +53,7 @@ and easy to understahnd.</p>
53
53
  <li><a href="#global-options-with-sub-commands">Global Options with Sub-Commands</a></li>
54
54
  <li><a href="#detailed-description-of-option">Detailed Description of Option</a></li>
55
55
  <li><a href="#option-tag">Option Tag</a></li>
56
+ <li><a href="#important-options">Important Options</a></li>
56
57
  <li><a href="#not-supported">Not Supported</a></li>
57
58
  </ul></li>
58
59
  <li><a href="#internal-classes">Internal Classes</a></li>
@@ -462,20 +463,19 @@ p options #=&gt; <strong>{:lib=&gt;["foo", "bar", "baz"]}</strong>
462
463
  <h3>Hidden Option</h3>
463
464
  <p>Benry-CmdOpt regards the following options as hidden.</p>
464
465
  <ul>
465
- <li>Key name starts with <code>_</code> (for example <code>:_debug</code>).</li>
466
+ <li>Keyword argument <code>hidden: true</code> is passed to <code>.add()</code> method.</li>
466
467
  <li>Or description is nil.</li>
467
468
  </ul>
468
- <p>The former is better than the latter, because even hidden option should have its own description.</p>
469
- <p>These hidden options are not included in help message.</p>
469
+ <p>Hidden options are not included in help message.</p>
470
470
  <pre class="language-ruby">
471
471
  require 'benry/cmdopt'
472
472
  cmdopt = Benry::CmdOpt.new
473
- cmdopt.add(:help , '-h', "help message")
474
- cmdopt.add(:debug, '-D', <strong>nil</strong>) # hidden (because description is nil)
475
- cmdopt.add(<strong>:_log</strong> , '-L', "logging") # hidden (because key starts with '_')
473
+ cmdopt.add(:help , '-h', "help message")
474
+ cmdopt.add(:logging, '-L', "logging", <strong>hidden: true</strong>) # hidden
475
+ cmdopt.add(:debug , '-D', <strong>nil</strong>) # hidden (desc is nil)
476
476
  puts cmdopt.to_s()
477
477
 
478
- ### output (neither '-D' nor '-L' is shown because hidden options)
478
+ ### output (neither '-L' nor '-D' is shown because hidden options)
479
479
  # -h : help message
480
480
  </pre>
481
481
  <p>To show all options including hidden ones, add <code>all: true</code> to <code>cmdopt.to_s()</code>.</p>
@@ -485,8 +485,8 @@ puts cmdopt.to_s(<strong>all: true</strong>) # or: cmdopt.to_s(nil, all: true)
485
485
 
486
486
  ### output
487
487
  # -h : help message
488
- # <strong>-D :</strong>
489
488
  # <strong>-L : logging</strong>
489
+ # <strong>-D : </strong>
490
490
  </pre>
491
491
  </section>
492
492
  <section class="subsection" id="global-options-with-sub-commands">
@@ -591,12 +591,36 @@ end
591
591
  #version: <strong>tag=nil</strong>
592
592
  </pre>
593
593
  </section>
594
+ <section class="subsection" id="important-options">
595
+ <h3>Important Options</h3>
596
+ <p>You can specify that the option is important or not.
597
+ Pass <code>important: true</code> or <code>important: false</code> keyword argument to <code>#add()</code> method of <code>Benry::CmdOpt</code> or <code>Benry::CmdOpt::Schema</code> object.</p>
598
+ <p>The help message of options is decorated according to value of <code>important:</code> keyword argument.</p>
599
+ <ul>
600
+ <li>Printed in bold font when <code>important: true</code> specified to the option.</li>
601
+ <li>Printed in gray color when <code>important: false</code> specified to the option.</li>
602
+ </ul>
603
+ <pre class="language-ruby">
604
+ require 'benry/cmdopt'
605
+
606
+ cmdopt = Benry::CmdOpt.new()
607
+ cmdopt.add(:help , "-h", "help message")
608
+ cmdopt.add(:verbose, "-v", "verbose mode", <strong>important: true</strong>) # !!!
609
+ cmdopt.add(:debug , "-D", "debug mode" , <strong>important: false</strong>) # !!!
610
+ puts cmdopt.option_help()
611
+
612
+ ## output:
613
+ # -h : help message
614
+ # -v : verbose mode # bold font
615
+ # -D : debug mode # gray color
616
+ </pre>
617
+ </section>
594
618
  <section class="subsection" id="not-supported">
595
619
  <h3>Not Supported</h3>
596
620
  <ul>
597
- <li>default value</li>
621
+ <li>default value when the option not specified in command-line</li>
598
622
  <li><code>--no-xxx</code> style option</li>
599
- <li>bash/zsh completion</li>
623
+ <li>bash/zsh completion (may be supported in the future)</li>
600
624
  <li>I18N of error message (may be supported in the future)</li>
601
625
  </ul>
602
626
  </section>
data/lib/benry/cmdopt.rb CHANGED
@@ -2,7 +2,7 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  ###
5
- ### $Release: 2.0.2 $
5
+ ### $Release: 2.1.0 $
6
6
  ### $Copyright: copyright(c) 2021 kwatch@gmail.com $
7
7
  ### $License: MIT License $
8
8
  ###
@@ -23,7 +23,7 @@ end
23
23
  module Benry::CmdOpt
24
24
 
25
25
 
26
- VERSION = '$Release: 2.0.2 $'.split()[1]
26
+ VERSION = '$Release: 2.1.0 $'.split()[1]
27
27
 
28
28
 
29
29
  def self.new()
@@ -40,11 +40,11 @@ module Benry::CmdOpt
40
40
 
41
41
  attr_reader :schema
42
42
 
43
- def add(key, optdef, desc, *rest, type: nil, rexp: nil, pattern: nil, enum: nil, range: nil, value: nil, detail: nil, tag: nil, &callback)
43
+ def add(key, optdef, desc, *rest, type: nil, rexp: nil, pattern: nil, enum: nil, range: nil, value: nil, detail: nil, hidden: nil, important: nil, tag: nil, &callback)
44
44
  rexp ||= pattern # for backward compatibility
45
45
  #; [!vmb3r] defines command option.
46
46
  #; [!71cvg] type, rexp, enum, and range are can be passed as positional args as well as keyword args.
47
- @schema.add(key, optdef, desc, *rest, type: type, rexp: rexp, enum: enum, range: range, value: value, detail: detail, tag: tag, &callback)
47
+ @schema.add(key, optdef, desc, *rest, type: type, rexp: rexp, enum: enum, range: range, value: value, detail: detail, hidden: hidden, important: important, tag: tag, &callback)
48
48
  #; [!tu4k3] returns self.
49
49
  self
50
50
  end
@@ -103,7 +103,7 @@ module Benry::CmdOpt
103
103
  self
104
104
  end
105
105
 
106
- def add(key, optdef, desc, *rest, type: nil, rexp: nil, pattern: nil, enum: nil, range: nil, value: nil, detail: nil, tag: nil, &callback)
106
+ def add(key, optdef, desc, *rest, type: nil, rexp: nil, pattern: nil, enum: nil, range: nil, value: nil, detail: nil, hidden: nil, important: nil, tag: nil, &callback)
107
107
  rexp ||= pattern # for backward compatibility
108
108
  #; [!kuhf9] type, rexp, enum, and range are can be passed as positional args as well as keyword args.
109
109
  rest.each do |x|
@@ -137,7 +137,7 @@ module Benry::CmdOpt
137
137
  end
138
138
  #; [!yht0v] keeps command option definitions.
139
139
  item = SchemaItem.new(key, optdef, desc, short, long, param, required,
140
- type: type, rexp: rexp, enum: enum, range: range, value: value, detail: detail, tag: tag, &callback)
140
+ type: type, rexp: rexp, enum: enum, range: range, value: value, detail: detail, hidden: hidden, important: important, tag: tag, &callback)
141
141
  @items << item
142
142
  item
143
143
  end
@@ -157,10 +157,16 @@ module Benry::CmdOpt
157
157
  #; [!to1th] includes all option help when `all` is true.
158
158
  #; [!a4qe4] option should not be hidden if description is empty string.
159
159
  sb = []
160
- width = nil; indent = nil
161
- each_option_and_desc(all: all) do |opt, desc, detail|
162
- sb << format % [opt, desc || ""] << "\n"
160
+ width = nil; indent = nil; color_p = $stdout.tty?
161
+ @items.each do |item|
162
+ next if ! all && item.hidden?
163
+ #; [!jrwb6] decorates help message according to `important:` value of option.
164
+ #; [!9nlfb] not decorate help message when stdout is not a tty.
165
+ s = format % [item.optdef, item.desc || ""]
166
+ s = _decorate_str(s, item.important?) if color_p
167
+ sb << s << "\n"
163
168
  #; [!848rm] supports multi-lines help message.
169
+ detail = item.detail
164
170
  if detail
165
171
  width ||= (format % ['', '']).length
166
172
  indent ||= ' ' * width
@@ -276,12 +282,20 @@ module Benry::CmdOpt
276
282
  return short_p ? 8 : long_p ? 20 : 14
277
283
  end
278
284
 
285
+ def _decorate_str(str, important)
286
+ case important
287
+ when true ; return "\e[1m#{str}\e[0m" # bold
288
+ when false ; return "\e[2m#{str}\e[0m" # gray
289
+ else ; return str
290
+ end
291
+ end
292
+
279
293
  end
280
294
 
281
295
 
282
296
  class SchemaItem # avoid Struct
283
297
 
284
- def initialize(key, optdef, desc, short, long, param, required, type: nil, rexp: nil, pattern: nil, enum: nil, range: nil, detail: nil, value: nil, tag: nil, &callback)
298
+ def initialize(key, optdef, desc, short, long, param, required, type: nil, rexp: nil, pattern: nil, enum: nil, range: nil, detail: nil, value: nil, hidden: nil, important: nil, tag: nil, &callback)
285
299
  rexp ||= pattern # for backward compatibility
286
300
  _init_validation(param, required, type, rexp, enum, range, value)
287
301
  @key = key unless nil == key
@@ -297,6 +311,8 @@ module Benry::CmdOpt
297
311
  @range = range unless nil == range
298
312
  @detail = detail unless nil == detail
299
313
  @value = value unless nil == value
314
+ @hidden = hidden unless nil == hidden
315
+ @important = important unless nil == important
300
316
  @tag = tag unless nil == tag
301
317
  @callback = callback unless nil == callback
302
318
  #; [!nn4cp] freezes enum object.
@@ -324,10 +340,18 @@ module Benry::CmdOpt
324
340
  end
325
341
 
326
342
  def hidden?()
343
+ #; [!no6ov] returns true if @hidden is true.
344
+ #; [!ej8ot] returns false if @hidden is false.
345
+ return @hidden if @hidden != nil
327
346
  #; [!h0uxs] returns true if desc is nil.
328
- #; [!su00g] returns true if key starts with '_'.
329
347
  #; [!28vzx] returns false if else.
330
- return @desc == nil || @key.to_s.start_with?('_')
348
+ return @desc == nil
349
+ end
350
+
351
+ def important?()
352
+ #; [!ua8kt] returns true/false if `important:` kwarg passed to constructor.
353
+ #; [!hz9sx] returns nil if `important:` kwarg not passed to constructor.
354
+ return @important
331
355
  end
332
356
 
333
357
  def validate_and_convert(val, optdict)
data/test/cmdopt_test.rb CHANGED
@@ -342,13 +342,49 @@ END
342
342
  spec "[!a4qe4] option should not be hidden if description is empty string." do
343
343
  sc = Benry::CmdOpt::Schema.new
344
344
  sc.add(:debug , "-D", nil) # hidden
345
- sc.add(:_trace, "-T", "trace") # hidden
345
+ sc.add(:trace, "-T", "trace", hidden: true) # hidden
346
346
  sc.add(:what , "-W", "") # NOT hidden!
347
347
  ok {sc.option_help()} == <<END
348
348
  -W :
349
349
  END
350
350
  end
351
351
 
352
+ fixture :schema_with_importance do
353
+ sc = Benry::CmdOpt::Schema.new
354
+ sc.add(:help , "-h, --help" , "help message")
355
+ sc.add(:trace , "-T, --trace", "trace" , important: true)
356
+ sc.add(:debug , "-D, --debug", "debug mode" , important: false)
357
+ sc.add(:quiet , "-q, --quiet", "quiet mode")
358
+ sc
359
+ end
360
+
361
+ spec "[!jrwb6] decorates help message according to `important:` value of option." do
362
+ |schema_with_importance|
363
+ sc = schema_with_importance
364
+ ok {sc.option_help()} == <<END
365
+ -h, --help : help message
366
+ \e[1m -T, --trace : trace\e[0m
367
+ \e[2m -D, --debug : debug mode\e[0m
368
+ -q, --quiet : quiet mode
369
+ END
370
+ end
371
+
372
+ spec "[!9nlfb] not decorate help message when stdout is not a tty." do
373
+ |schema_with_importance|
374
+ sc = schema_with_importance
375
+ output = nil
376
+ capture_sio() {
377
+ ok {$stdout}.NOT.tty?
378
+ output = sc.option_help()
379
+ }
380
+ ok {output} == <<END
381
+ -h, --help : help message
382
+ -T, --trace : trace
383
+ -D, --debug : debug mode
384
+ -q, --quiet : quiet mode
385
+ END
386
+ end
387
+
352
388
  end
353
389
 
354
390
 
@@ -445,7 +481,7 @@ END
445
481
  sc.add(:help, "-h, --help", "show help message")
446
482
  sc.add(:version, " --version", "print version")
447
483
  sc.add(:debug , "-d, --debug" , nil) # hidden
448
- sc.add(:_DEBUG , "-D, --DEBUG" , "debug mode") # hidden
484
+ sc.add(:DEBUG , "-D, --DEBUG" , "debug mode", hidden: true) # hidden
449
485
  @schema = sc
450
486
  end
451
487
 
@@ -532,7 +568,7 @@ END
532
568
  spec "[!icvm1] ignores hidden items if 'all: false' kwarg specified." do
533
569
  schema = Benry::CmdOpt::Schema.new
534
570
  schema.add(:debug , "-D", nil)
535
- schema.add(:_trace, "-T", "trace")
571
+ schema.add(:trace, "-T", "trace", hidden: true)
536
572
  ok {schema.empty?()} == false
537
573
  ok {schema.empty?(all: true)} == false
538
574
  ok {schema.empty?(all: false)} == true
@@ -898,15 +934,19 @@ END
898
934
 
899
935
  topic '#hidden?()' do
900
936
 
901
- spec "[!h0uxs] returns true if desc is nil." do
902
- desc = nil
903
- item = Benry::CmdOpt::SchemaItem.new(:debug, "-D", desc, "D", nil, nil, nil)
937
+ spec "[!no6ov] returns true if @hidden is true." do
938
+ item = Benry::CmdOpt::SchemaItem.new(:debug, "-D", "debug mode", "D", nil, nil, nil, hidden: true)
904
939
  ok {item.hidden?} == true
905
940
  end
906
941
 
907
- spec "[!su00g] returns true if key starts with '_'." do
908
- desc = "debug mode"
909
- item = Benry::CmdOpt::SchemaItem.new(:_debug, "-D", desc, "D", nil, nil, nil)
942
+ spec "[!ej8ot] returns false if @hidden is false." do
943
+ item = Benry::CmdOpt::SchemaItem.new(:debug, "-D", "debug mode", "D", nil, nil, nil, hidden: false)
944
+ ok {item.hidden?} == false
945
+ end
946
+
947
+ spec "[!h0uxs] returns true if desc is nil." do
948
+ desc = nil
949
+ item = Benry::CmdOpt::SchemaItem.new(:debug, "-D", desc, "D", nil, nil, nil)
910
950
  ok {item.hidden?} == true
911
951
  end
912
952
 
@@ -919,6 +959,23 @@ END
919
959
  end
920
960
 
921
961
 
962
+ topic '#important?()' do
963
+
964
+ spec "[!ua8kt] returns true/false if `important:` kwarg passed to constructor." do
965
+ item1 = Benry::CmdOpt::SchemaItem.new(:debug, "-D", "debug mode", "D", nil, nil, nil, important: true)
966
+ ok {item1.important?} == true
967
+ item2 = Benry::CmdOpt::SchemaItem.new(:debug, "-D", "debug mode", "D", nil, nil, nil, important: false)
968
+ ok {item2.important?} == false
969
+ end
970
+
971
+ spec "[!hz9sx] returns nil if `important:` kwarg not passed to constructor." do
972
+ item3 = Benry::CmdOpt::SchemaItem.new(:debug, "-D", "debug mode", "D", nil, nil, nil)
973
+ ok {item3.important?} == nil
974
+ end
975
+
976
+ end
977
+
978
+
922
979
  topic '#validate_and_convert()' do
923
980
 
924
981
  def new_item(key, optstr, desc, short, long, param, required,
@@ -1520,7 +1577,7 @@ END
1520
1577
  @cmdopt.add(:help , "-h, --help" , "show help message")
1521
1578
  @cmdopt.add(:version, " --version" , "print version")
1522
1579
  @cmdopt.add(:debug , "-D" , nil) # hidden option
1523
- @cmdopt.add(:_trace , "-T" , "trace") # hidden option
1580
+ @cmdopt.add(:trace , "-T" , "trace", hidden: true) # hidden option
1524
1581
  end
1525
1582
 
1526
1583
  spec "[!bw9qx] yields each option definition string and help message." do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: benry-cmdopt
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.2
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - kwatch
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-10-12 00:00:00.000000000 Z
11
+ date: 2023-10-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: oktest