kafo_parsers 0.1.3 → 0.1.4

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