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 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!