help_parser 6.2.0 → 6.3.0
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/README.md +1 -1
- data/lib/help_parser/completion.rb +4 -5
- data/lib/help_parser/k2t2r.rb +2 -2
- data/lib/help_parser/options.rb +2 -6
- data/lib/help_parser/parseh.rb +11 -2
- data/lib/help_parser/parseu.rb +2 -10
- data/lib/help_parser.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: b8f371bee63827fcbd8051796c5fce3421da5a3fc41bf6223e546c28ec99362c
|
4
|
+
data.tar.gz: 4484cae785efb013dfccdbcec34a7f17ed89fe013b0a5018c31f4515e87a9439
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ad1de10f9ba6c1788db1dcae160c5fe8ea8c61432d388c097aab22efe8edfa6f86e22131e43159f8ab944615e8e3aa9e66fa714131e0347a241ded901aba8926
|
7
|
+
data.tar.gz: c4086cff775108315243f191acb81d243b792fdc18718b5390070b67f9b2174f8f5a517bf3a665807a4122bce80118799559f5883142e914f748eaa5f8895884
|
data/README.md
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
module HelpParser
|
2
2
|
class Completion
|
3
|
-
def initialize(hash, specs
|
3
|
+
def initialize(hash, specs)
|
4
4
|
@hash,@specs = hash,specs
|
5
5
|
@cache = NoDupHash.new
|
6
6
|
usage if @specs.has_key?(USAGE)
|
7
7
|
pad
|
8
|
-
types
|
8
|
+
types
|
9
9
|
end
|
10
10
|
|
11
11
|
def usage
|
@@ -24,10 +24,9 @@ module HelpParser
|
|
24
24
|
raise UsageError, MATCH_USAGE
|
25
25
|
end
|
26
26
|
|
27
|
-
def types
|
27
|
+
def types
|
28
28
|
if t2r = HelpParser.t2r(@specs)
|
29
|
-
k2t = HelpParser.k2t(@specs
|
30
|
-
HelpParser.validate_k2t2r(@specs, k2t, t2r) if validate
|
29
|
+
k2t = HelpParser.k2t(@specs)
|
31
30
|
@hash.each do |key,value|
|
32
31
|
next unless key.is_a?(String)
|
33
32
|
if type = k2t[key]
|
data/lib/help_parser/k2t2r.rb
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
module HelpParser
|
2
|
-
def self.k2t(specs
|
2
|
+
def self.k2t(specs)
|
3
3
|
k2t = NoDupHash.new
|
4
4
|
tokens = specs.select{|k,v| !(k==TYPES)}.values.flatten.select{|v|v.include?('=')}
|
5
5
|
tokens.each do |token|
|
6
6
|
if match = VARIABLE.match(token) || LONG.match(token)
|
7
7
|
name, type = match['k'], match['t']
|
8
8
|
k2t[name] = type if !k2t.has_key?(name)
|
9
|
-
raise HelpError, MSG[INCONSISTENT,name,type,k2t[name]] if
|
9
|
+
raise HelpError, MSG[INCONSISTENT,name,type,k2t[name]] if !(type==k2t[name])
|
10
10
|
else
|
11
11
|
# Expected these to be caught earlier...
|
12
12
|
raise SoftwareError, MSG[UNEXPECTED,token]
|
data/lib/help_parser/options.rb
CHANGED
@@ -11,18 +11,14 @@ module HelpParser
|
|
11
11
|
if @hash.has_key?('h') || _=@hash.has_key?('help')
|
12
12
|
begin
|
13
13
|
# validates help
|
14
|
-
|
15
|
-
if t2r = HelpParser.t2r(specs)
|
16
|
-
k2t = HelpParser.k2t(specs, true)
|
17
|
-
HelpParser.validate_k2t2r(specs, k2t, t2r)
|
18
|
-
end
|
14
|
+
HelpParser.parseh(help, true)
|
19
15
|
rescue HelpError
|
20
16
|
$stderr.puts $!
|
21
17
|
end if _
|
22
18
|
raise HelpException, help
|
23
19
|
end
|
24
20
|
specs = HelpParser.parseh(help, HelpParser.validate?)
|
25
|
-
Completion.new(@hash, specs
|
21
|
+
Completion.new(@hash, specs)
|
26
22
|
if exclusive=specs[EXCLUSIVE]
|
27
23
|
exclusive.each{|xs| raise HelpParser::UsageError, MSG[EXCLUSIVE_KEYS,*xs] if @hash.keys.count{|k|xs.include?(k)}>1}
|
28
24
|
end
|
data/lib/help_parser/parseh.rb
CHANGED
@@ -15,7 +15,10 @@ module HelpParser
|
|
15
15
|
raise HelpError, EXTRANEOUS_SPACES if validate and spec==''
|
16
16
|
case name
|
17
17
|
when USAGE
|
18
|
-
|
18
|
+
HelpParser.validate_line_chars(spec.chars) if validate
|
19
|
+
tokens = HelpParser.parseu(spec.chars)
|
20
|
+
HelpParser.validate_usage_tokens(tokens) if validate
|
21
|
+
specs[name].push tokens
|
19
22
|
when TYPES
|
20
23
|
raise HelpError, MSG[UNRECOGNIZED_TYPE,spec] if validate and not spec=~TYPE_DEF
|
21
24
|
specs[name].push spec.split(CSV)
|
@@ -30,7 +33,13 @@ module HelpParser
|
|
30
33
|
end
|
31
34
|
end
|
32
35
|
end
|
33
|
-
|
36
|
+
if validate
|
37
|
+
HelpParser.validate_usage_specs(specs)
|
38
|
+
if t2r = HelpParser.t2r(specs)
|
39
|
+
k2t = HelpParser.k2t(specs)
|
40
|
+
HelpParser.validate_k2t2r(specs, k2t, t2r)
|
41
|
+
end
|
42
|
+
end
|
34
43
|
return specs
|
35
44
|
end
|
36
45
|
end
|
data/lib/help_parser/parseu.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
module HelpParser
|
2
|
-
def self.
|
2
|
+
def self.parseu(chars)
|
3
3
|
tokens,token = [],''
|
4
4
|
while c = chars.shift
|
5
5
|
case c
|
@@ -8,7 +8,7 @@ module HelpParser
|
|
8
8
|
tokens.push(token)
|
9
9
|
token = ''
|
10
10
|
end
|
11
|
-
tokens.push HelpParser.
|
11
|
+
tokens.push HelpParser.parseu(chars) if c=='['
|
12
12
|
return tokens if c==']'
|
13
13
|
else
|
14
14
|
token += c
|
@@ -17,12 +17,4 @@ module HelpParser
|
|
17
17
|
tokens.push(token) unless token==''
|
18
18
|
return tokens
|
19
19
|
end
|
20
|
-
|
21
|
-
def self.parseu(line, validate=true)
|
22
|
-
chars = line.chars
|
23
|
-
HelpParser.validate_line_chars(chars)
|
24
|
-
tokens = HelpParser._parseu(chars)
|
25
|
-
HelpParser.validate_usage_tokens(tokens) if validate
|
26
|
-
return tokens
|
27
|
-
end
|
28
20
|
end
|
data/lib/help_parser.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: help_parser
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 6.
|
4
|
+
version: 6.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- carlosjhr64
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-03-01 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: |
|
14
14
|
Welcome to the best Help Parser of all!
|