help_parser 6.2.0 → 6.3.0
Sign up to get free protection for your applications and to get access to all the features.
- 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!
|