getopt-declare 1.30 → 1.31
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 +7 -0
- data/getopt-declare.gemspec +6 -5
- data/lib/Getopt/Declare.rb +50 -51
- data/lib/Getopt/DelimScanner.rb +3 -2
- data/samples/requires.rb +11 -0
- metadata +44 -64
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 32dd881f507e3cc2dc55780ba052ca6b09789396
|
4
|
+
data.tar.gz: 19e4fc6b1ece3315fbd9383b4ac5f0fd86d65427
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 0b5d5c07014591e5e929c6f6026a16dde339cde8c4adbfb4f8ade9e48c6cf2cd90cfc2aa4640e9c8571119495b281228f0a8aff3253b1046cc35bfe65111dda1
|
7
|
+
data.tar.gz: e1c8b0a43a262962aa16a3e21eeb80d0eaf6b12e698d76ab86dd2e71f35670698e256ca508aaa7c66734ce9191ccc49b41e0d8055c6812910c53eae0a987a8dc
|
data/getopt-declare.gemspec
CHANGED
@@ -1,23 +1,24 @@
|
|
1
1
|
require "rubygems"
|
2
2
|
|
3
|
-
|
3
|
+
sp = Gem::Specification.new do |spec|
|
4
4
|
spec.name = "getopt-declare"
|
5
|
-
spec.version = '1.
|
5
|
+
spec.version = '1.31'
|
6
6
|
spec.author = "Gonzalo Garramuno"
|
7
7
|
spec.email = 'ggarra13@gmail.com'
|
8
8
|
spec.homepage = 'http://www.rubyforge.org/projects/getoptdeclare/'
|
9
9
|
spec.summary = 'A regex command-line parsing library.'
|
10
|
+
spec.license = 'GPL'
|
10
11
|
spec.require_path = "lib"
|
11
12
|
spec.files =
|
12
13
|
['getopt-declare.gemspec'] +
|
13
14
|
Dir.glob("lib/Getopt/*.rb") +
|
14
15
|
Dir.glob("samples/*.rb") + Dir.glob("test/*.rb")
|
15
|
-
spec.description = <<-EOF
|
16
|
-
A command-line parser using regular expressions.
|
17
|
-
EOF
|
18
16
|
spec.extra_rdoc_files = ["Manifest.txt", "README.txt"] +
|
19
17
|
Dir.glob("docs/*/*")
|
20
18
|
spec.has_rdoc = true
|
21
19
|
spec.rubyforge_project = 'getopt-declare'
|
22
20
|
spec.required_ruby_version = '>= 1.8.0'
|
21
|
+
spec.description = <<-EOF
|
22
|
+
A command-line parser using regular expressions.
|
23
|
+
EOF
|
23
24
|
end
|
data/lib/Getopt/Declare.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
# -*- coding: iso-8859-1 -*-
|
1
2
|
#
|
2
3
|
# Getopt::Declare - Declaratively Expressed Command-Line Arguments via Regular Expressions
|
3
4
|
#
|
@@ -306,44 +307,44 @@ EOS
|
|
306
307
|
end
|
307
308
|
|
308
309
|
code << " #{@name} = _VAL_\n"
|
309
|
-
|
310
|
+
end
|
310
311
|
|
311
312
|
# Based on parameter type, default conversion to apply
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
-
|
340
|
-
|
341
|
-
|
342
|
-
|
343
|
-
|
344
|
-
|
345
|
-
|
346
|
-
|
313
|
+
def conversion
|
314
|
+
pat = @@stdtype[@type] ? @@stdtype[@type][:pattern] : ''
|
315
|
+
[ @type, pat ].each { |t|
|
316
|
+
case t
|
317
|
+
when /^\:0?(\+)?i$/
|
318
|
+
return '.to_i'
|
319
|
+
when /^\:0?(\+)?n$/
|
320
|
+
return '.to_f'
|
321
|
+
end
|
322
|
+
}
|
323
|
+
return nil
|
324
|
+
end
|
325
|
+
|
326
|
+
# Return string with code to cache argument in Getopt::Declare's cache
|
327
|
+
def cachecode(ownerflag, itemcount)
|
328
|
+
if itemcount > 1
|
329
|
+
" @cache['#{ownerflag}']['<#{@name}>'] = #{@name}\n"
|
330
|
+
else
|
331
|
+
" @cache['#{ownerflag}'] = #{@name}\n"
|
332
|
+
end
|
333
|
+
end
|
334
|
+
|
335
|
+
# Helps build regex that matches parameters of flags
|
336
|
+
def trailer
|
337
|
+
nil # MEANS TRAILING PARAMETER VARIABLE (in Perl,was '')
|
338
|
+
end
|
339
|
+
|
340
|
+
# Helps build regex that matches parameters of flags
|
341
|
+
# Wraps parameter passed for #$1, etc. matching
|
342
|
+
def ows(g)
|
343
|
+
return '[\s|\0]*(' + g + ')' unless @nows
|
344
|
+
return '(' + g + ')'
|
345
|
+
end
|
346
|
+
|
347
|
+
end # ScalarArg
|
347
348
|
|
348
349
|
|
349
350
|
# Class used to handle array arguments
|
@@ -644,12 +645,12 @@ EOS
|
|
644
645
|
code << ' and !_lastprefix'
|
645
646
|
end
|
646
647
|
|
647
|
-
code <<'
|
648
|
+
code << '
|
648
649
|
begin
|
649
650
|
catch(:param) do
|
650
651
|
_pos = _nextpos if _args
|
651
652
|
_PUNCT_ = {}
|
652
|
-
|
653
|
+
'
|
653
654
|
|
654
655
|
if flag != ''
|
655
656
|
# This boundary is to handle -- option, so that if user uses
|
@@ -684,20 +685,20 @@ EOS
|
|
684
685
|
if @args
|
685
686
|
code << "\n"+' _args && _pos = gindex( _args, /\G'
|
686
687
|
|
687
|
-
@args.each_with_index { |arg,
|
688
|
-
code << arg.ows(arg.matcher(trailer[
|
688
|
+
@args.each_with_index { |arg, j|
|
689
|
+
code << arg.ows(arg.matcher(trailer[j]))
|
689
690
|
}
|
690
691
|
|
691
692
|
code << '/x' + nocasei + ", _pos ) or throw(:paramout)\n"
|
692
693
|
end # if @args
|
693
694
|
|
694
|
-
@args.each_with_index { |arg,
|
695
|
-
code << arg.code(
|
695
|
+
@args.each_with_index { |arg, j|
|
696
|
+
code << arg.code(j,mod) #, $flag ????
|
696
697
|
}
|
697
698
|
|
698
699
|
if flag
|
699
700
|
mutexlist = owner.mutex[flag] ?
|
700
|
-
( owner.mutex[flag].map {|
|
701
|
+
( owner.mutex[flag].map {|j| "'#{j}'"} ).join(',') : ''
|
701
702
|
|
702
703
|
code << "
|
703
704
|
if _invalid.has_key?('#{flag}')
|
@@ -872,8 +873,6 @@ EOS
|
|
872
873
|
if desc =~ /\[\s*no\s*case\s*\]/i
|
873
874
|
if arg
|
874
875
|
arg.nocase = true
|
875
|
-
else
|
876
|
-
nocase = true
|
877
876
|
end
|
878
877
|
end
|
879
878
|
|
@@ -1101,10 +1100,10 @@ EOS
|
|
1101
1100
|
|
1102
1101
|
# Check for GNU spec line like: -d, --debug
|
1103
1102
|
arg = nil
|
1104
|
-
if spec =~ /(-[\
|
1103
|
+
if spec =~ /(-[\w]+),\s+(--?[\w]+)(\s+.*)?/
|
1105
1104
|
specs = ["#$1#$3", "#$2#$3"]
|
1106
|
-
specs.each { |
|
1107
|
-
arg = Arg.new(
|
1105
|
+
specs.each { |sp|
|
1106
|
+
arg = Arg.new(sp,desc,ditto)
|
1108
1107
|
_args.push( arg )
|
1109
1108
|
_infer(desc, arg, _mutex)
|
1110
1109
|
ditto = arg
|
@@ -1430,7 +1429,7 @@ EOS
|
|
1430
1429
|
|
1431
1430
|
header << "Options:\n" unless decfirst && decfirst == 1
|
1432
1431
|
|
1433
|
-
usage.sub!(/[\s
|
1432
|
+
usage.sub!(/[\s]+\Z/m, '')
|
1434
1433
|
|
1435
1434
|
pager = $stdout
|
1436
1435
|
|
@@ -1656,7 +1655,7 @@ end
|
|
1656
1655
|
## cannot just assign unused to ARGV in ruby
|
1657
1656
|
unless @source != ''
|
1658
1657
|
ARGV.clear
|
1659
|
-
@unused.map { |
|
1658
|
+
@unused.map { |j| ARGV.push(j) }
|
1660
1659
|
end
|
1661
1660
|
|
1662
1661
|
unless _errors > 0
|
@@ -1734,6 +1733,6 @@ end
|
|
1734
1733
|
attr :clump
|
1735
1734
|
attr :source
|
1736
1735
|
|
1737
|
-
|
1736
|
+
end # class Declare
|
1738
1737
|
|
1739
1738
|
end # module Getopt
|
data/lib/Getopt/DelimScanner.rb
CHANGED
@@ -109,6 +109,7 @@ class DelimScanner
|
|
109
109
|
def self.def_casting_delegators( *methods )
|
110
110
|
methods.each {|methodName|
|
111
111
|
class_eval( <<-EOF, "(--def_casting_delegators--)", 1 )
|
112
|
+
undef :#{methodName}
|
112
113
|
def #{methodName}( pattern )
|
113
114
|
pattern = pattern.to_s.to_re unless pattern.is_a?( Regexp )
|
114
115
|
@scanner.#{methodName}( pattern )
|
@@ -731,7 +732,7 @@ class DelimScanner
|
|
731
732
|
failmode.inspect, bad.inspect, ignore.inspect
|
732
733
|
|
733
734
|
rdelspec = ''
|
734
|
-
openTagPos, textPos, paraPos, closeTagPos,
|
735
|
+
openTagPos, textPos, paraPos, closeTagPos, = ([nil] * 5)
|
735
736
|
match = nil
|
736
737
|
|
737
738
|
# Look for the prefix
|
@@ -854,7 +855,7 @@ class DelimScanner
|
|
854
855
|
startPos, prefix.inspect, matchRawRegex.inspect
|
855
856
|
|
856
857
|
# Init position markers
|
857
|
-
rval = oppos =
|
858
|
+
rval = oppos = ldpos = strpos = rdpos = modpos = nil
|
858
859
|
|
859
860
|
# Look for the prefix
|
860
861
|
raise MatchFailure, "Did not find prefix: /#{prefix.inspect}/" unless
|
data/samples/requires.rb
ADDED
metadata
CHANGED
@@ -1,103 +1,83 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: getopt-declare
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease:
|
6
|
-
segments:
|
7
|
-
- 1
|
8
|
-
- 30
|
9
|
-
version: "1.30"
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: '1.31'
|
10
5
|
platform: ruby
|
11
|
-
authors:
|
6
|
+
authors:
|
12
7
|
- Gonzalo Garramuno
|
13
8
|
autorequire:
|
14
9
|
bindir: bin
|
15
10
|
cert_chain: []
|
16
|
-
|
17
|
-
date: 2013-09-17 00:00:00 Z
|
11
|
+
date: 2014-01-26 00:00:00.000000000 Z
|
18
12
|
dependencies: []
|
19
|
-
|
20
13
|
description: "\tA command-line parser using regular expressions.\n"
|
21
14
|
email: ggarra13@gmail.com
|
22
15
|
executables: []
|
23
|
-
|
24
16
|
extensions: []
|
25
|
-
|
26
|
-
|
17
|
+
extra_rdoc_files:
|
18
|
+
- Manifest.txt
|
19
|
+
- README.txt
|
20
|
+
files:
|
27
21
|
- Manifest.txt
|
28
22
|
- README.txt
|
29
|
-
files:
|
30
23
|
- getopt-declare.gemspec
|
31
24
|
- lib/Getopt/Declare.rb
|
32
|
-
- lib/Getopt/DelimScanner.rb
|
33
25
|
- lib/Getopt/Declare2.rb
|
26
|
+
- lib/Getopt/DelimScanner.rb
|
27
|
+
- samples/cmdline_array.rb
|
34
28
|
- samples/cmdline_basic.rb
|
35
|
-
- samples/cmdline_usage.rb
|
36
|
-
- samples/cmdline_regex.rb
|
37
|
-
- samples/demo_cmdline.rb
|
38
29
|
- samples/cmdline_code.rb
|
39
|
-
- samples/
|
40
|
-
- samples/
|
41
|
-
- samples/
|
42
|
-
- samples/
|
30
|
+
- samples/cmdline_defer.rb
|
31
|
+
- samples/cmdline_file.rb
|
32
|
+
- samples/cmdline_finish.rb
|
33
|
+
- samples/cmdline_inlines.rb
|
34
|
+
- samples/cmdline_mid.rb
|
43
35
|
- samples/cmdline_noargv.rb
|
44
36
|
- samples/cmdline_parameters.rb
|
37
|
+
- samples/cmdline_pvtype.rb
|
45
38
|
- samples/cmdline_pvtype2.rb
|
46
|
-
- samples/
|
47
|
-
- samples/cmdline_file.rb
|
48
|
-
- samples/cmdline_defer.rb
|
49
|
-
- samples/cmdline_array.rb
|
50
|
-
- samples/cmdline_mid.rb
|
39
|
+
- samples/cmdline_regex.rb
|
51
40
|
- samples/cmdline_singles.rb
|
52
|
-
- samples/
|
53
|
-
-
|
54
|
-
-
|
55
|
-
-
|
41
|
+
- samples/cmdline_usage.rb
|
42
|
+
- samples/demo_cmdline.rb
|
43
|
+
- samples/demo_csv.rb
|
44
|
+
- samples/demo_interp.rb
|
45
|
+
- samples/demo_shell.rb
|
46
|
+
- samples/requires.rb
|
56
47
|
- test/test_cluster_singles.rb
|
57
|
-
- test/test_cmdline_regex.rb
|
58
|
-
- test/test_cmdline_require.rb
|
59
|
-
- test/test_cmdline_pvtype2.rb
|
60
48
|
- test/test_cmdline_array.rb
|
49
|
+
- test/test_cmdline_basic.rb
|
61
50
|
- test/test_cmdline_cmdline.rb
|
62
|
-
- test/test_demo_csv.rb
|
63
51
|
- test/test_cmdline_finish.rb
|
52
|
+
- test/test_cmdline_mid.rb
|
64
53
|
- test/test_cmdline_parameters.rb
|
65
|
-
-
|
66
|
-
-
|
54
|
+
- test/test_cmdline_pvtype.rb
|
55
|
+
- test/test_cmdline_pvtype2.rb
|
56
|
+
- test/test_cmdline_regex.rb
|
57
|
+
- test/test_cmdline_require.rb
|
58
|
+
- test/test_demo_csv.rb
|
67
59
|
homepage: http://www.rubyforge.org/projects/getoptdeclare/
|
68
|
-
licenses:
|
69
|
-
|
60
|
+
licenses:
|
61
|
+
- GPL
|
62
|
+
metadata: {}
|
70
63
|
post_install_message:
|
71
64
|
rdoc_options: []
|
72
|
-
|
73
|
-
require_paths:
|
65
|
+
require_paths:
|
74
66
|
- lib
|
75
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
76
|
-
|
77
|
-
requirements:
|
67
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
68
|
+
requirements:
|
78
69
|
- - ">="
|
79
|
-
- !ruby/object:Gem::Version
|
80
|
-
hash: 55
|
81
|
-
segments:
|
82
|
-
- 1
|
83
|
-
- 8
|
84
|
-
- 0
|
70
|
+
- !ruby/object:Gem::Version
|
85
71
|
version: 1.8.0
|
86
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
87
|
-
|
88
|
-
requirements:
|
72
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
89
74
|
- - ">="
|
90
|
-
- !ruby/object:Gem::Version
|
91
|
-
|
92
|
-
segments:
|
93
|
-
- 0
|
94
|
-
version: "0"
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '0'
|
95
77
|
requirements: []
|
96
|
-
|
97
78
|
rubyforge_project: getopt-declare
|
98
|
-
rubygems_version:
|
79
|
+
rubygems_version: 2.2.0
|
99
80
|
signing_key:
|
100
|
-
specification_version:
|
81
|
+
specification_version: 4
|
101
82
|
summary: A regex command-line parsing library.
|
102
83
|
test_files: []
|
103
|
-
|