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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 137d04ddd668a522d322093c831b92b12b6c52354ef621383825f90a860d6e30
4
- data.tar.gz: 13a5bce9a7fd241d5bc27614eab56105b3a355e8f0140ad1e6390d59bed38de1
3
+ metadata.gz: b8f371bee63827fcbd8051796c5fce3421da5a3fc41bf6223e546c28ec99362c
4
+ data.tar.gz: 4484cae785efb013dfccdbcec34a7f17ed89fe013b0a5018c31f4515e87a9439
5
5
  SHA512:
6
- metadata.gz: c9353c972bf23ee28025d2a373397bfad784da2abc51cf26d932a88359a9e6df8930d4e04fc2c82e11a12813049bb98d56c98cd0ff02793161c62cc98117d6a2
7
- data.tar.gz: 29efa76ac44adfdc5b1146eb7d6bf8f7c8d6c012fcd0215f996b956478e0e8f84c908a4810ab9ca67a4bb0d8e6285d9bb68eed5d19478f77d0889366065cf652
6
+ metadata.gz: ad1de10f9ba6c1788db1dcae160c5fe8ea8c61432d388c097aab22efe8edfa6f86e22131e43159f8ab944615e8e3aa9e66fa714131e0347a241ded901aba8926
7
+ data.tar.gz: c4086cff775108315243f191acb81d243b792fdc18718b5390070b67f9b2174f8f5a517bf3a665807a4122bce80118799559f5883142e914f748eaa5f8895884
data/README.md CHANGED
@@ -42,7 +42,7 @@ I prefer easy.
42
42
  Blah blah blah
43
43
  HELP
44
44
 
45
- VERSION = "6.2.0"
45
+ VERSION = "6.3.0"
46
46
 
47
47
  # Macros:
48
48
  HelpParser.string(name) # for options.name : String
@@ -1,11 +1,11 @@
1
1
  module HelpParser
2
2
  class Completion
3
- def initialize(hash, specs, validate=true)
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(validate)
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(validate=true)
27
+ def types
28
28
  if t2r = HelpParser.t2r(@specs)
29
- k2t = HelpParser.k2t(@specs, validate)
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]
@@ -1,12 +1,12 @@
1
1
  module HelpParser
2
- def self.k2t(specs, validate=true)
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 validate and !(type==k2t[name])
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]
@@ -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
- specs = HelpParser.parseh(help, true)
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, HelpParser.validate?)
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
@@ -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
- specs[name].push HelpParser.parseu(spec, validate)
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
- HelpParser.validate_usage_specs(specs) if validate
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
@@ -1,5 +1,5 @@
1
1
  module HelpParser
2
- def self._parseu(chars)
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._parseu(chars) if c=='['
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
@@ -11,7 +11,7 @@ require_relative './help_parser/options'
11
11
  require_relative './help_parser/macros'
12
12
 
13
13
  module HelpParser
14
- VERSION = '6.2.0'
14
+ VERSION = '6.3.0'
15
15
 
16
16
  def self.[](
17
17
  version = nil,
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.2.0
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-02-28 00:00:00.000000000 Z
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!