shellopts 2.0.14 → 2.0.15
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 +4 -4
- data/TODO +2 -2
- data/lib/shellopts/program.rb +49 -21
- data/lib/shellopts/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 253954c7f2de836c89e511dffabf3217719e778d47f74740a51c3b1099dcd07f
|
4
|
+
data.tar.gz: 4a5579e3c56674d09ba380d392e600028e6c353728994e8b2445629b772cb450
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d0f0f0418361c69037a944c1e99021c32d578ed41dc239e7f9dc9f1ce94e578a137efdea3a9b96848fc0fb0b9aa1a8114153485b6ce21ceea7a3f34ceacdd197
|
7
|
+
data.tar.gz: f70644b23103d244fe06164a337839c042d6e65e1aa3dba59fa6b028cf7b0032fd694121c582142f2f3cdfbdaa12cba17464b74114bc5caf5b2aa489cde94f9a
|
data/TODO
CHANGED
@@ -1,4 +1,5 @@
|
|
1
|
-
|
1
|
+
o --option can't be escaped if on the start of a block line?
|
2
|
+
o Use require_relative
|
2
3
|
o In the following list is a command with a mandatory sub-command
|
3
4
|
|
4
5
|
list.tables!
|
@@ -14,7 +15,6 @@ o In the following list is a command with a mandatory sub-command
|
|
14
15
|
and not as
|
15
16
|
list [tables|uuids]
|
16
17
|
|
17
|
-
|
18
18
|
o Replace -h with -? when -h is specified by the user (eg. as a shorthand for --host)
|
19
19
|
o Limit text width to -10 chars of what it is today (same as stackexchange width in characters)
|
20
20
|
o Fix formatting error in long arguments (see ms2pg)
|
data/lib/shellopts/program.rb
CHANGED
@@ -153,10 +153,10 @@ module ShellOpts
|
|
153
153
|
# Grammar object
|
154
154
|
attr_reader :__grammar__
|
155
155
|
|
156
|
-
# Hash from identifier to value. Can be Integer, Float, or String
|
157
|
-
#
|
158
|
-
#
|
159
|
-
# the
|
156
|
+
# Hash from identifier to value. Can be Integer, Float, or String depending
|
157
|
+
# on the option's type. Repeated options options without arguments have the
|
158
|
+
# number of occurences as value and with arguments the value is an array of
|
159
|
+
# the given values
|
160
160
|
attr_reader :__option_values__
|
161
161
|
|
162
162
|
# List of Option objects for the subcommand in the same order as
|
@@ -194,7 +194,48 @@ module ShellOpts
|
|
194
194
|
|
195
195
|
def __define_option_methods__
|
196
196
|
@__grammar__.options.each { |opt|
|
197
|
-
if opt.
|
197
|
+
if !opt.repeatable?
|
198
|
+
self.instance_eval %(
|
199
|
+
def #{opt.attr}?()
|
200
|
+
@__option_values__.key?(:#{opt.attr})
|
201
|
+
end
|
202
|
+
)
|
203
|
+
end
|
204
|
+
|
205
|
+
if opt.repeatable?
|
206
|
+
if opt.argument?
|
207
|
+
self.instance_eval %(
|
208
|
+
def #{opt.attr}?()
|
209
|
+
(@__option_values__[:#{opt.attr}]&.size || 0) > 0
|
210
|
+
end
|
211
|
+
)
|
212
|
+
self.instance_eval %(
|
213
|
+
def #{opt.attr}(default = [])
|
214
|
+
if @__option_values__.key?(:#{opt.attr})
|
215
|
+
@__option_values__[:#{opt.attr}]
|
216
|
+
else
|
217
|
+
default
|
218
|
+
end
|
219
|
+
end
|
220
|
+
)
|
221
|
+
else
|
222
|
+
self.instance_eval %(
|
223
|
+
def #{opt.attr}?()
|
224
|
+
(@__option_values__[:#{opt.attr}] || 0) > 0
|
225
|
+
end
|
226
|
+
)
|
227
|
+
self.instance_eval %(
|
228
|
+
def #{opt.attr}(default = 0)
|
229
|
+
if default > 0 && (@__option_values__[:#{opt.attr}] || 0) == 0
|
230
|
+
default
|
231
|
+
else
|
232
|
+
@__option_values__[:#{opt.attr}] || 0
|
233
|
+
end
|
234
|
+
end
|
235
|
+
)
|
236
|
+
end
|
237
|
+
|
238
|
+
elsif opt.argument?
|
198
239
|
self.instance_eval %(
|
199
240
|
def #{opt.attr}(default = nil)
|
200
241
|
if @__option_values__.key?(:#{opt.attr})
|
@@ -205,26 +246,13 @@ module ShellOpts
|
|
205
246
|
end
|
206
247
|
)
|
207
248
|
|
208
|
-
|
249
|
+
else
|
209
250
|
self.instance_eval %(
|
210
|
-
def #{opt.attr}(
|
211
|
-
|
212
|
-
default
|
213
|
-
else
|
214
|
-
@__option_values__[:#{opt.attr}]
|
215
|
-
end
|
251
|
+
def #{opt.attr}()
|
252
|
+
@__option_values__.key?(:#{opt.attr})
|
216
253
|
end
|
217
254
|
)
|
218
|
-
else
|
219
|
-
self.instance_eval("def #{opt.attr}() @__option_values__[:#{opt.attr}] end")
|
220
255
|
end
|
221
|
-
|
222
|
-
if opt.argument? || opt.repeatable?
|
223
|
-
self.instance_eval("def #{opt.attr}=(value) @__option_values__[:#{opt.attr}] = value end")
|
224
|
-
@__option_values__[opt.attr] = 0 if !opt.argument?
|
225
|
-
end
|
226
|
-
|
227
|
-
self.instance_eval("def #{opt.attr}?() @__option_values__.key?(:#{opt.attr}) end")
|
228
256
|
}
|
229
257
|
|
230
258
|
@__grammar__.commands.each { |cmd|
|
data/lib/shellopts/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: shellopts
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.15
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Claus Rasmussen
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-04-
|
11
|
+
date: 2022-04-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: forward_to
|