appl 1.17 → 1.18

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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/appl.rb +13 -6
  3. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9d084ceaba0454719bfc3014fee88ca28e7ecdf62909a2909c8bdc46289cd0b1
4
- data.tar.gz: 8cc3725ecfe7f6326cf3f6643a9d26ac4f134e2bedf4e49a2de7163dc80fcd62
3
+ metadata.gz: 910d3c31e9ccea4a482121b2a580b2a764d18603057f4f55ded3de0da4f6570f
4
+ data.tar.gz: 1266cccb0ea094c1d560947456006064f6eb4f26561b706f9aeff18c47e23119
5
5
  SHA512:
6
- metadata.gz: 52070e42aa20856c1e25e1ac4ee3cc650258c256088396ce8ff325dc942dcd1b831dab5d905dbcc577a6217d0270973caa04de91f314ed71938614bea913d82b
7
- data.tar.gz: ed06bcee4d2b1ce6f825bcade230e976123760ba3bddf9dc84e4544221ff518ffb2cadd63bd2b8cab5d8358fd574700fe8ed462483807b452c09d2e3f7198e45
6
+ metadata.gz: 43612b15a512ec95b6b8915d72e85d3673417f21b164d08767d4d2bb33210c633b8b24c90c0e6b7b711ee96fad27f07715b6bb636846f6d605269d329417099e
7
+ data.tar.gz: 628aa7d1fb71c47c4be0403b921ba3461eae58f231a057cc70acf3b1aefab94b82e9a00375958d46b7207d13d2059bc1e08d0799d3e37a3d5a342b2c4d232ab7
data/lib/appl.rb CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  class Application
7
7
 
8
- APPL_VERSION = "1.17".freeze
8
+ APPL_VERSION = "1.18".freeze
9
9
 
10
10
  OPTIONS_ENV = nil
11
11
 
@@ -25,7 +25,13 @@ class Application
25
25
  @name, @args = name, args
26
26
  self.class.each_option { |opt,desc,arg,dfl,act|
27
27
  begin
28
- send act, dfl if dfl
28
+ if dfl then
29
+ if arg then
30
+ send act, dfl
31
+ else
32
+ send act
33
+ end
34
+ end
29
35
  rescue NoMethodError
30
36
  raise OptionError, "Option action `#{act}' is not defined."
31
37
  end
@@ -133,7 +139,9 @@ class Application
133
139
  desc = param.pop
134
140
  arg = param.shift
135
141
  if arg then
136
- if param.empty? then
142
+ if arg == true then
143
+ arg, dfl = nil, true
144
+ elsif param.empty? then
137
145
  arg, dfl = arg.split /:/, 2
138
146
  if dfl =~ /\A:/ then
139
147
  dfl = $'.to_sym
@@ -212,9 +220,8 @@ class Application
212
220
  def show_options
213
221
  options_desc do |opt,arg,dfl,desc|
214
222
  opt = opt.length == 1 ? "-#{opt}" : "--#{opt}"
215
- arg &&= "#{arg}"
216
- dfl &&= "[#{dfl}]"
217
- arg << dfl if arg && dfl
223
+ arg = "#{arg}"
224
+ arg << "[#{dfl}]" if dfl
218
225
  l = " %-*s %-*s %s" % [ root::W_OPTS, opt, root::W_ARGS, arg, desc]
219
226
  l.rstrip!
220
227
  puts l
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: appl
3
3
  version: !ruby/object:Gem::Version
4
- version: '1.17'
4
+ version: '1.18'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bertram Scharpf
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-02-10 00:00:00.000000000 Z
11
+ date: 2024-12-28 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: |
14
14
  A base class for command line applications doing options parsing
@@ -42,7 +42,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
42
42
  version: '0'
43
43
  requirements:
44
44
  - Just Ruby
45
- rubygems_version: 3.5.5
45
+ rubygems_version: 3.5.23
46
46
  signing_key:
47
47
  specification_version: 4
48
48
  summary: Easy option parsing