l43_opt_parser 0.3.1 → 0.3.2

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: 56566e37e53f4f9a56960641c73054c2441aa13a74397f62b563eca89470b529
4
- data.tar.gz: efa2e5d8a9cca077cc28073d52c123545ff173fb55cc2e59ecf5c843734ad445
3
+ metadata.gz: 470ed33a63e0d7d6065fb876a621a492ccc4778a807afcd08d0afe34486de442
4
+ data.tar.gz: 4dfd5ac9412c4938a23b5b411822f0b406b5d8d176599fbd042c4a8d409cd396
5
5
  SHA512:
6
- metadata.gz: 86e1ccc819b3764a84365b93655e08dc7361c88acef54f5f5dcd0ab19a4b7ae50da1253d30e116cf68515503d74649cdb77284ecd6ad8abd602c3bec7ec1916e
7
- data.tar.gz: ef7bd636ae7810d746f4f108f3140ad707132a4b80a3583e697174d2153a35a0ec3b8067601bf8c06cf5e568ee317b622d21b9813b17cf06485dd5e36e64d3a1
6
+ metadata.gz: cb1d25c590bda0e1e09dad0f895e7edbb03b5c9351ac6b701e8513c45636a9a3d920624c8943f50a24c928aa581a651bc1c2e92efd9fa2c6015667be809af74c
7
+ data.tar.gz: e90c4840a684fe032a9b7d3b429481a57008f21de0489ff761b0373ef794e2981f288b63c7c8622ea0c8dd8bf6da803864e7339785cef9284deb4f494e7021ca
@@ -1,21 +1,32 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'l43/simple_color/file_colorizer'
3
4
  require 'l43/core/none'
5
+ require 'l43/core/forwarder'
4
6
  module L43
5
7
  class OptParser
6
8
  class Description
9
+ extend Core::Forwarder
10
+ forward :xcolorize_file, to: L43::SimpleColor
7
11
 
8
12
  def add_desc(*chunks, indent: 5)
9
13
  self << [indent, *chunks]
10
14
  end
11
15
 
12
- def add_flag(flag, indent: 3, color: :cyan)
16
+ def add_desc_from_file(file)
17
+ xcolorize_file(file).each do |colored, _|
18
+ _lines << colored
19
+ end
20
+ self
21
+ end
22
+
23
+ def add_flag(flag, indent: 4, color: :cyan)
13
24
  return unless flag.desc
14
25
  short = flag.short ? ":#{flag.short}|" : ""
15
26
  self << [indent, color, short, ":", flag.name.to_s, :reset, 1, flag.desc ]
16
27
  end
17
28
 
18
- def add_kwd(kwd, indent: 3, color: :cyan, vcolor: [:bold,:blue])
29
+ def add_kwd(kwd, indent: 4, color: :cyan, vcolor: [:bold,:blue])
19
30
  return unless kwd.desc
20
31
  short = kwd.short ? "#{kwd.short}:|" : ""
21
32
  default = kwd.default == Core::None ? [] : [1, :dim, "defaults to: ", :bold, kwd.default.inspect]
@@ -26,20 +37,20 @@ module L43
26
37
  self << chunks
27
38
  end
28
39
 
29
- def add_section(text, indent: 1, color: [:bold, :green])
40
+ def add_section(text, indent: 2, color: [:bold, :green])
30
41
  self << [nil, indent, color, text]
31
42
  end
32
43
 
33
44
  def add_usage(name, options:, args:)
34
45
  options = "options" if options == true
35
46
  args = "args" if args == true
36
- @__lines__ = [[:bold, name, " ", *_args(options, [:bold, :cyan]), ' ', *_args(args, [:bold, :blue], "...")], *_lines]
47
+ @__lines__ = [[:bold, "usage: ", :green, name, :reset, *_args(options, [:bold, :cyan]), *_args(args, [:bold, :blue], "...")], *_lines]
37
48
  end
38
49
 
39
50
  def lines = _lines.dup.freeze
40
51
 
41
52
  private
42
- def _args(args, cols, pfx='')
53
+ def _args(args, cols, pfx=' ')
43
54
  case args
44
55
  when nil
45
56
  []
@@ -54,7 +65,7 @@ module L43
54
65
 
55
66
 
56
67
  def <<(*line)
57
- _lines << [nil, *line.flatten, :reset]
68
+ _lines << [*line.flatten, :reset]
58
69
  end
59
70
  end
60
71
  end
@@ -2,7 +2,7 @@
2
2
 
3
3
  module L43
4
4
  class OptParser
5
- VERSION = '0.3.1'
5
+ VERSION = '0.3.2'
6
6
  end
7
7
  end
8
8
  # SPDX-License-Identifier: AGPL-3.0-or-later
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'l43/color/colorschemes'
4
- require 'l43/color/output'
3
+ require 'l43/simple_color'
4
+ require 'l43/simple_color/file_colorizer'
5
5
  require 'l43/core/none'
6
6
  require 'l43/open_struct'
7
7
  require 'l43/open_object'
@@ -16,7 +16,7 @@ require_relative 'opt_parser/meta'
16
16
  module L43
17
17
  class OptParser
18
18
 
19
- include Color::Output
19
+ include SimpleColor
20
20
  include Core
21
21
  include Memos
22
22
  include Meta
@@ -77,12 +77,17 @@ module L43
77
77
  self
78
78
  end
79
79
 
80
- def add_desc(*chunks)
81
- description.add_desc(*chunks)
80
+ def add_desc(*chunks, file: nil)
81
+ raise ArgumentError, "cannot use chunks and file" unless chunks.empty? || file.nil?
82
+ if file
83
+ description.add_desc_from_file(file)
84
+ else
85
+ description.add_desc(*chunks)
86
+ end
82
87
  self
83
88
  end
84
89
 
85
- def section(line, indent: 1, color: [:bold, :green])
90
+ def section(line, indent: 2, color: [:bold, :green])
86
91
  description.add_section(line, indent:, color:)
87
92
  self
88
93
  end
@@ -91,7 +96,11 @@ module L43
91
96
  # --------
92
97
 
93
98
  def descriptions = description.lines
94
- def help(device: $stderr) = cs_put(descriptions, device:)
99
+ def help(device: $stderr)
100
+ descriptions.each do
101
+ xputcol(it, device:)
102
+ end
103
+ end
95
104
 
96
105
 
97
106
  # Business Logic
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: l43_opt_parser
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.3.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Dober
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2026-04-27 00:00:00.000000000 Z
10
+ date: 2026-05-06 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: ostruct
@@ -24,19 +24,19 @@ dependencies:
24
24
  - !ruby/object:Gem::Version
25
25
  version: 0.6.3
26
26
  - !ruby/object:Gem::Dependency
27
- name: l43_color
27
+ name: l43_simple_color
28
28
  requirement: !ruby/object:Gem::Requirement
29
29
  requirements:
30
30
  - - "~>"
31
31
  - !ruby/object:Gem::Version
32
- version: 0.3.0
32
+ version: 0.2.2
33
33
  type: :runtime
34
34
  prerelease: false
35
35
  version_requirements: !ruby/object:Gem::Requirement
36
36
  requirements:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
- version: 0.3.0
39
+ version: 0.2.2
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: l43_core
42
42
  requirement: !ruby/object:Gem::Requirement