kafo_parsers 0.1.3 → 0.1.4

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
  SHA1:
3
- metadata.gz: 7ebb12bf6ecf4fa190d9839ee1d706643ecca536
4
- data.tar.gz: 5b436e733a9759681a24c473383649ca4acf8b88
3
+ metadata.gz: b0c3926a766e0ebd3f3d156451176f9d02e68a21
4
+ data.tar.gz: 98db6338da1c9acf47304c93dc4d56a75a07d6bb
5
5
  SHA512:
6
- metadata.gz: a2250f2cb342093586f88ed2e57289ab8b205b090d130122b63e32172a65e5d147a09edeb5afb3fcdfd779bb9341300e3df938f09f32973847643205fb2a9ba8
7
- data.tar.gz: 965bd310c428fac43f795ab118fb4b02ee7a2e3790a46081ba02e17359323fccc28b636822e1155d098ca393f50058f6f5544b90ac8488b7891c7a16d555c170
6
+ metadata.gz: d23d9e3fc141268358563fef5ccf804d9b073a37b093cefb287652aff56a792c67c6fa222a3e42a48add29c5910fb053fd3fb7a6c66b255a755c728974ffb24b
7
+ data.tar.gz: 4ab94d2975ca76e8e634e655cb08d41816006539de778af31550af18f12d5973dc0dfa04d9b1c93be371beb51aa82fe60ad5c103a30257ecfe050f4a4cb1c47b
data/README.md CHANGED
@@ -60,7 +60,9 @@ Add `gem 'puppet', '< 4'` to your application's Gemfile to use this.
60
60
  #### PuppetStringsModuleParser
61
61
 
62
62
  If you use Puppet 4 you prefer PuppetStringsModuleParser which leverages
63
- puppet-strings to parse puppet manifests.
63
+ puppet-strings to parse puppet manifests. This requires puppet-strings 0.99 or
64
+ higher and may be installed either as a gem in the same environment, or in a
65
+ Puppet AIO installation.
64
66
 
65
67
  ```ruby
66
68
  require 'kafo_parsers/puppet_strings_module_parser'
@@ -36,7 +36,7 @@ module KafoParsers
36
36
  @file = file
37
37
  raise KafoParsers::ModuleName, "File not found #{file}, check your answer file" unless File.exists?(file)
38
38
 
39
- command = "#{self.class.puppet_bin} strings #{file} --emit-json-stdout"
39
+ command = "#{self.class.puppet_bin} strings generate --emit-json-stdout #{file}"
40
40
  @raw_json = `#{command}`
41
41
  unless $?.success?
42
42
  raise KafoParsers::ParseError, "'#{command}' returned error\n#{@raw_json}"
@@ -60,7 +60,7 @@ module KafoParsers
60
60
  binary = File.join(path, 'puppet')
61
61
  binary if File.executable?(binary)
62
62
  end
63
- File.join(found_puppet_path, 'puppet') || 'puppet'
63
+ found_puppet_path.nil? ? 'puppet' : File.join(found_puppet_path, 'puppet')
64
64
  end
65
65
  end
66
66
 
@@ -77,7 +77,11 @@ module KafoParsers
77
77
  end
78
78
 
79
79
  def values
80
- Hash[@parsed_hash['parameters'].map { |name, value| [ name, value.nil? ? nil : sanitize(value) ] }]
80
+ Hash[
81
+ # combine known parameters (from tags) with any defaults provided
82
+ tag_params.select { |param| !param['types'].nil? }.map { |param| [ param['name'], nil ] } +
83
+ @parsed_hash.fetch('defaults', {}).map { |name, value| [ name, value.nil? ? nil : sanitize(value) ] }
84
+ ]
81
85
  end
82
86
 
83
87
  # unsupported in puppet strings parser
@@ -96,8 +100,8 @@ module KafoParsers
96
100
  data = { :docs => {}, :types => {}, :groups => {}, :conditions => {} }
97
101
  if @parsed_hash.nil?
98
102
  raise KafoParsers::DocParseError, "no documentation found for manifest #{@file}, parsing error?"
99
- elsif !@parsed_hash['docstring'].nil?
100
- parser = DocParser.new(@parsed_hash['docstring']).parse
103
+ elsif !@parsed_hash['docstring'].nil? && !@parsed_hash['docstring']['text'].nil?
104
+ parser = DocParser.new(@parsed_hash['docstring']['text']).parse
101
105
  data[:docs] = parser.docs
102
106
  data[:groups] = parser.groups
103
107
  data[:types] = merge_doc_types(parser.types)
@@ -125,7 +129,15 @@ module KafoParsers
125
129
  end
126
130
 
127
131
  def merge_doc_types(types)
128
- Hash[@parsed_hash['signatures'].flatten.map { |param| [ param['name'], param['type'] ] }].merge(types)
132
+ Hash[tag_params.select { |param| !param['types'].nil? }.map { |param| [ param['name'], param['types'].first ] }].merge(types)
133
+ end
134
+
135
+ def tag_params
136
+ if @parsed_hash['docstring']['tags']
137
+ @parsed_hash['docstring']['tags'].select { |tag| tag['tag_name'] == 'param' }
138
+ else
139
+ []
140
+ end
129
141
  end
130
142
 
131
143
  end
@@ -1,3 +1,3 @@
1
1
  module KafoParsers
2
- VERSION = "0.1.3"
2
+ VERSION = "0.1.4"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kafo_parsers
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Marek Hulan
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-09-13 00:00:00.000000000 Z
11
+ date: 2016-10-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler