puppet-doc-lint 0.2.0 → 0.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
  SHA1:
3
- metadata.gz: 70a3379e492215be1a969178afa712b05c11e543
4
- data.tar.gz: 03e079e6f1062f0134c62a5c405f7d5122551dba
3
+ metadata.gz: 4b785db59bb3c0b5397307901564a9814841e9a2
4
+ data.tar.gz: 38b68375f3fad99363eca90ecc277c6d43762687
5
5
  SHA512:
6
- metadata.gz: 5afa27a3e693af0a682607a823ca02591ce05a9e5408d18c443dc932f1c748df31baa7200aca597d022909ec8fd894c886501e036617c41e62387932bb4a424e
7
- data.tar.gz: ef1b370a69ed9abe5c4549c1b4937326830512e4ed7fa6fdfc4877df99631de70f7075933a73cfb681aebd8accc5b5e87fc441148dc4fc6656d6494d0c8b0726
6
+ metadata.gz: d59d5332839324fdd0c3e31f467f6af4224eff248e761bd49c4ec31c52911de9c32035788930d6c4fb344dd5d7452e06010103b3f5ccc08b5dd3102a3d1c27f7
7
+ data.tar.gz: 36c7c59d91507a5f3c6144564d7d7beb90d509f6154a2b0fdf5a836f73fd1c9c107ea9e6f5f32272d228ad6d1b8f21eb3ce018ccbd1b43aab2085f056c241129
data/README.md CHANGED
@@ -3,13 +3,48 @@
3
3
 
4
4
  Lint your Puppet files for RDoc coverage
5
5
 
6
- This project is heavily based on the puppet-parse code base, go check it out! :smile:
6
+ This project is heavily based on the [puppet-parse](https://github.com/johanek/puppet-parse) code base, go check it out! :smile:
7
+
8
+ ## Assumptions
9
+
10
+ This assumes that you're formatting your documentation in Puppet with [RDoc formatting](http://rdoc.sourceforge.net/doc/).
11
+
12
+ For example _this_ will work:
13
+
14
+ ```Rdoc
15
+ # == Class: foo
16
+ #
17
+ # This module manages foo
18
+ #
19
+ # === Parameters
20
+ #
21
+ # [*ensure*]
22
+ # Controls presence of package and stuff
23
+ #
24
+ # === Authors
25
+ #
26
+ # * Jane Doe <mailto:jane.doe@fakecorp.com>
27
+ #
28
+ ```
29
+
30
+ _This_ will not:
31
+
32
+ ```
33
+ # Class: foo
34
+ #
35
+ # This module manages foo
36
+ #
37
+ # Parameters:
38
+ # - $ensure
39
+ #
40
+ # Authors: Jane Doe <mailto:jane.doe@fakecorp.com>
41
+ #
42
+ ```
7
43
 
8
44
  ## Installation
9
45
 
10
46
  gem install puppet-doc-lint
11
47
 
12
-
13
48
  ## Usage
14
49
 
15
50
  ### By hand
@@ -28,6 +63,8 @@ class firewall::linux::debian Docs found are ["ensure", "enable"]
28
63
 
29
64
  ### Rake task
30
65
 
66
+ ** Currrently broken maybe? **
67
+
31
68
  If you want to parse your entire modules directory, you can add
32
69
  `require 'puppet-doc-lint/rake-task' to your Rakefile and then run
33
70
 
@@ -45,7 +45,7 @@ class PuppetDocLint
45
45
  rdoc.parts.each do |part|
46
46
  if part.respond_to?(:items)
47
47
  part.items.each do |item|
48
- next if item.label.nil?
48
+ next if item.label.nil? || item.parts.first.class == RDoc::Markup::BlankLine
49
49
  key = item.label.to_s.tr('^A-Za-z0-9_-', '')
50
50
  docs[key] = item.parts.first.parts
51
51
  end # do item
@@ -63,7 +63,7 @@ class PuppetDocLint
63
63
  author_docs = rdoc.parts.chunk{|i|i.class == RDoc::Markup::Heading && i.text == 'Authors'}.reject{|sep,ans| sep}.map{|sep,ans| ans}
64
64
 
65
65
  author_docs.each do | doc_chunk |
66
- unless doc_chunk[1].class == RDoc::Markup::BlankLine || doc_chunk[1].class == RDoc::Markup::Heading
66
+ unless doc_chunk[1].class == RDoc::Markup::BlankLine || doc_chunk[1].class == RDoc::Markup::Heading || !doc_chunk[1].respond_to?(:items)
67
67
  doc_chunk[1].items.each do |chunk|
68
68
  authors << chunk.parts.first.parts
69
69
  end
@@ -23,9 +23,11 @@ class PuppetDocLint
23
23
  puts "Class #{class_name} ( #{file_name} )".bg_blue
24
24
  puts "Parameters found #{parameters}"
25
25
  if no_documentation
26
- puts "No documentation found."
27
- puts "If there is documentation, this may be a bug with the Puppet parser"
28
- puts "Puppet files with newer features such as the use of hashes can cause this\n\n"
26
+ puts "No documentation found.".red
27
+ puts "Possible reasons:"
28
+ puts "* The documentation is not formatted in the RDoc format"
29
+ puts "* There's a bug in the puppet documentation parser"
30
+ puts "* There is no documentation at all"
29
31
  else
30
32
  puts "Documented parameters found: #{documented_parameters}".green
31
33
  puts "Undocumented parameters found: #{undocumented_parameters}".red
@@ -1,3 +1,3 @@
1
1
  class PuppetDocLint
2
- PUPPETDOCLINT_VERSION = "0.2.0"
2
+ PUPPETDOCLINT_VERSION = "0.3.0"
3
3
  end
@@ -0,0 +1,77 @@
1
+ # This adds the necessary components to get backports for ubuntu and debian
2
+ #
3
+ # == Parameters
4
+ #
5
+ # [*release*]
6
+ # The ubuntu/debian release name. Defaults to $lsbdistcodename. Setting this
7
+ # manually can cause undefined behavior. (Read: universe exploding)
8
+ #
9
+ # [*pin_priority*]
10
+ # _default_: 200
11
+ #
12
+ # The priority that should be awarded by default to all packages coming from
13
+ # the Debian Backports project.
14
+ #
15
+ # == Examples
16
+ #
17
+ # include apt::backports
18
+ #
19
+ # class { 'apt::backports':
20
+ # release => 'natty',
21
+ # }
22
+ #
23
+ # == Authors
24
+ #
25
+ # Ben Hughes, I think. At least blame him if this goes wrong.
26
+ # I just added puppet doc.
27
+ #
28
+ # == Copyright
29
+ #
30
+ # Copyright 2011 Puppet Labs Inc, unless otherwise noted.
31
+ class apt::backports(
32
+ $release = $::lsbdistcodename,
33
+ $location = $::apt::params::backports_location,
34
+ $pin_priority = 200,
35
+ ) inherits apt::params {
36
+
37
+ if ! is_integer($pin_priority) {
38
+ fail('$pin_priority must be an integer')
39
+ }
40
+
41
+ if $::lsbdistid == 'LinuxMint' {
42
+ if $::lsbdistcodename == 'debian' {
43
+ $distid = 'debian'
44
+ $release_real = 'wheezy'
45
+ } else {
46
+ $distid = 'ubuntu'
47
+ $release_real = $::lsbdistcodename ? {
48
+ 'qiana' => 'trusty',
49
+ 'petra' => 'saucy',
50
+ 'olivia' => 'raring',
51
+ 'nadia' => 'quantal',
52
+ 'maya' => 'precise',
53
+ }
54
+ }
55
+ } else {
56
+ $distid = $::lsbdistid
57
+ $release_real = downcase($release)
58
+ }
59
+
60
+ $key = $distid ? {
61
+ 'debian' => '46925553',
62
+ 'ubuntu' => '437D05B5',
63
+ }
64
+ $repos = $distid ? {
65
+ 'debian' => 'main contrib non-free',
66
+ 'ubuntu' => 'main universe multiverse restricted',
67
+ }
68
+
69
+ apt::source { 'backports':
70
+ location => $location,
71
+ release => "${release_real}-backports",
72
+ repos => $repos,
73
+ key => $key,
74
+ key_server => 'pgp.mit.edu',
75
+ pin => $pin_priority,
76
+ }
77
+ }
@@ -70,7 +70,8 @@ describe PuppetDocLint::DocRunner do
70
70
 
71
71
  it "should return a multi-element array" do
72
72
  subject.class.should be(Array)
73
- subject.size.should eql(7)
73
+ # Count of how many test manifests we have
74
+ subject.size.should eql(8)
74
75
  end
75
76
 
76
77
  end
@@ -127,5 +128,11 @@ describe PuppetDocLint::DocRunner do
127
128
  it_should_behave_like "something undocumented", file, klass
128
129
  end
129
130
 
131
+ describe "badly formatted author block" do
132
+ file = 'spec/manifests/bad_author_block.pp'
133
+ klass = 'apt::backports'
134
+ it_should_behave_like "standard tests", file, klass
135
+ end
136
+
130
137
  end
131
138
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: puppet-doc-lint
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter Souter
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-12-28 00:00:00.000000000 Z
11
+ date: 2015-01-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -128,6 +128,7 @@ files:
128
128
  - lib/puppet-doc-lint/string.rb
129
129
  - lib/puppet-doc-lint/version.rb
130
130
  - puppet-doc-lint.gemspec
131
+ - spec/manifests/bad_author_block.pp
131
132
  - spec/manifests/define_nordoc.pp
132
133
  - spec/manifests/define_rdoc.pp
133
134
  - spec/manifests/nested_bullets.pp
@@ -163,6 +164,7 @@ signing_key:
163
164
  specification_version: 4
164
165
  summary: Doc Parser for Puppet Modules. Returns Information about documentation.
165
166
  test_files:
167
+ - spec/manifests/bad_author_block.pp
166
168
  - spec/manifests/define_nordoc.pp
167
169
  - spec/manifests/define_rdoc.pp
168
170
  - spec/manifests/nested_bullets.pp