knife-cookbook-doc 0.15.0 → 0.16.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/.gitignore +1 -0
- data/.travis.yml +49 -0
- data/CHANGELOG.md +8 -0
- data/README.md +34 -0
- data/fixture/CHANGELOG.md +13 -0
- data/fixture/README-expected.md +34 -0
- data/fixture/README.md +1 -0
- data/fixture/attributes/default.rb +1 -0
- data/fixture/doc/credit.md +4 -0
- data/fixture/doc/overview.md +3 -0
- data/fixture/gemfile +9 -0
- data/fixture/knife.rb +3 -0
- data/fixture/metadata.rb +10 -0
- data/fixture/recipes/default.rb +14 -0
- data/lib/chef/knife/README.md.erb +6 -0
- data/lib/knife_cookbook_doc/attributes_model.rb +3 -3
- data/lib/knife_cookbook_doc/base_model.rb +3 -3
- data/lib/knife_cookbook_doc/readme_model.rb +25 -1
- data/lib/knife_cookbook_doc/version.rb +1 -1
- data/spec/knife_cookbook_doc/attribute_model_spec.rb +85 -1
- metadata +13 -3
- data/TODO.md +0 -1
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
ZTdjZDI5OTM0Mjk5MTU4ZDVmMTI4NTMzOTM4MjJlMjNlYmM5ZDRiMg==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
YWIyYmJiZGZlMWZlZTg3NDZkZjBkNjRkOWU4Yjg3MmE4YzUxODEyNQ==
|
7
7
|
!binary "U0hBNTEy":
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
NTM0YTIzODBhNmE0NGIxYjlhZDA3ZjViNzAyNDc2NGZjZWQwNjhkNTRlZThk
|
10
|
+
ODg4N2EwODE3ZjRkOThkOGI1MGYzYjNjZTA0NmZlN2ZjMjFjMTIxNDA1NjE4
|
11
|
+
YjQ4NTdmOGJjMGZiOTBmNjI4YmZmYmE3NDg1NDAxNTA0Y2QzNTg=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
ZDA4YWVjYWEyMGU0ZmU4MjFkNGEzYTAwNGEzYTA0NDdjMmEyYWNhOWIxODdj
|
14
|
+
ZjgwYmM0M2I3NjBlYmUxOGMxYmE5MDMwMWRjNmE0YTBjMzkwZjk1NWEwMTBm
|
15
|
+
ZDZiMzFjOGI4MzgzZTYxNWI1N2QyM2NkMDdiOWNhN2E0NDg3ZmY=
|
data/.gitignore
CHANGED
data/.travis.yml
ADDED
@@ -0,0 +1,49 @@
|
|
1
|
+
language: ruby
|
2
|
+
cache: bundler
|
3
|
+
sudo: false
|
4
|
+
gemfile: fixture/gemfile
|
5
|
+
|
6
|
+
rvm:
|
7
|
+
- 2.0
|
8
|
+
- 2.1
|
9
|
+
- 2.2
|
10
|
+
|
11
|
+
env:
|
12
|
+
- CHEF_VERSION=master
|
13
|
+
- CHEF_VERSION=12.4.1
|
14
|
+
- CHEF_VERSION=12.3.0
|
15
|
+
- CHEF_VERSION=12.2.1
|
16
|
+
- CHEF_VERSION=12.1.2
|
17
|
+
- CHEF_VERSION=12.0.3
|
18
|
+
- CHEF_VERSION=11.18.12
|
19
|
+
- CHEF_VERSION=11.16.4
|
20
|
+
- CHEF_VERSION=11.14.6
|
21
|
+
- CHEF_VERSION=11.12.8
|
22
|
+
- CHEF_VERSION=11.10.4
|
23
|
+
- CHEF_VERSION=11.8.2
|
24
|
+
- CHEF_VERSION=11.6.2
|
25
|
+
- CHEF_VERSION=11.4.4
|
26
|
+
- CHEF_VERSION=11.2.0
|
27
|
+
- CHEF_VERSION=11.0.0
|
28
|
+
|
29
|
+
matrix:
|
30
|
+
fast_finish: true
|
31
|
+
exclude:
|
32
|
+
- env: CHEF_VERSION=11.8.2
|
33
|
+
rvm: 2.2
|
34
|
+
- env: CHEF_VERSION=11.6.2
|
35
|
+
rvm: 2.2
|
36
|
+
- env: CHEF_VERSION=11.4.4
|
37
|
+
rvm: 2.2
|
38
|
+
- env: CHEF_VERSION=11.2.0
|
39
|
+
rvm: 2.2
|
40
|
+
- env: CHEF_VERSION=11.0.0
|
41
|
+
rvm: 2.2
|
42
|
+
|
43
|
+
allow_failures:
|
44
|
+
- env: CHEF_VERSION=master
|
45
|
+
|
46
|
+
script:
|
47
|
+
- cd fixture
|
48
|
+
- bundle exec knife cookbook doc . -o README-generated.md -c knife.rb
|
49
|
+
- diff README-expected.md README-generated.md && rm README-generated.md
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,11 @@
|
|
1
|
+
# v0.16.0 (Aug 6 2015)
|
2
|
+
|
3
|
+
* Travis CI testing, and test matrix. Submitted by Mark Ayers.
|
4
|
+
* Added badges to README. Submitted by Mark Ayers.
|
5
|
+
* Expose metadata name value. Submitted by Mark Ayers.
|
6
|
+
* No longer capitalize the platform. Submitted by Mark Ayers.
|
7
|
+
* Allow '# <' and '# >' for doc block comments. Submitted by Mark Ayers.
|
8
|
+
|
1
9
|
# v0.15.0 (Mar 20 2015)
|
2
10
|
|
3
11
|
* Further bug-fixes for multi-line attributes. Submitted By Drew Blessing.
|
data/README.md
CHANGED
@@ -1,5 +1,12 @@
|
|
1
1
|
# knife-cookbook-doc
|
2
2
|
|
3
|
+
[![Build Status](http://img.shields.io/travis/realityforge/knife-cookbook-doc.svg)](https://travis-ci.org/realityforge/knife-cookbook-doc)
|
4
|
+
[![Code Climate](https://codeclimate.com/github/realityforge/knife-cookbook-doc/badges/gpa.svg)](https://codeclimate.com/github/realityforge/knife-cookbook-doc)
|
5
|
+
[![Gem Version](https://badge.fury.io/rb/knife-cookbook-doc.svg)](http://badge.fury.io/rb/knife-cookbook-doc)
|
6
|
+
[![Dependency Status](https://gemnasium.com/realityforge/knife-cookbook-doc.svg)](https://gemnasium.com/realityforge/knife-cookbook-doc)
|
7
|
+
[![Inline docs](http://inch-ci.org/github/realityforge/knife-cookbook-doc.svg)](http://inch-ci.org/github/realityforge/knife-cookbook-doc)
|
8
|
+
|
9
|
+
|
3
10
|
This is a knife plugin to help create and maintain a README.md for a cookbook.
|
4
11
|
As much as possible the plugin makes use of the same metadata as used by chef
|
5
12
|
when generating the documentation. The plugin will also scan the source files
|
@@ -160,6 +167,33 @@ The documentation stored in comments comes in three forms;
|
|
160
167
|
# This is some documentation
|
161
168
|
#>
|
162
169
|
|
170
|
+
## Version Testing and Support Matrix
|
171
|
+
|
172
|
+
This knife plugin is tested against multiple MRI Ruby versions and multiple
|
173
|
+
Chef versions. We aim to test against the lastest patch version of each minor
|
174
|
+
version of Chef Client's knife. See the `.travis.yml` for more complete detail.
|
175
|
+
|
176
|
+
```
|
177
|
+
| Chef | MRI Ruby | | |
|
178
|
+
| version | 2.0 | 2.1 | 2.2 |
|
179
|
+
|----------|----------|---------|---------|
|
180
|
+
| master | perhaps | perhaps | perhaps |
|
181
|
+
| 12.4.1 | yes | yes | yes |
|
182
|
+
| 12.3.0 | yes | yes | yes |
|
183
|
+
| 12.2.1 | yes | yes | yes |
|
184
|
+
| 12.1.2 | yes | yes | yes |
|
185
|
+
| 12.0.3 | yes | yes | yes |
|
186
|
+
| 11.18.12 | yes | yes | yes |
|
187
|
+
| 11.16.4 | yes | yes | yes |
|
188
|
+
| 11.14.6 | yes | yes | yes |
|
189
|
+
| 11.12.8 | yes | yes | yes |
|
190
|
+
| 11.10.4 | yes | yes | yes |
|
191
|
+
| 11.8.2 | yes | yes | no |
|
192
|
+
| 11.6.2 | yes | yes | no |
|
193
|
+
| 11.4.4 | yes | yes | no |
|
194
|
+
| 11.2.0 | yes | yes | no |
|
195
|
+
| 11.0.0 | yes | yes | no |
|
196
|
+
```
|
163
197
|
|
164
198
|
## Credit
|
165
199
|
|
@@ -0,0 +1,13 @@
|
|
1
|
+
fixture CHANGELOG
|
2
|
+
=================
|
3
|
+
|
4
|
+
This file is used to list changes made in each version of the fixture cookbook.
|
5
|
+
|
6
|
+
0.1.0
|
7
|
+
-----
|
8
|
+
- [your_name] - Initial release of fixture
|
9
|
+
|
10
|
+
- - -
|
11
|
+
Check the [Markdown Syntax Guide](http://daringfireball.net/projects/markdown/syntax) for help with Markdown.
|
12
|
+
|
13
|
+
The [Github Flavored Markdown page](http://github.github.com/github-flavored-markdown/) describes the differences between markdown on github and standard markdown.
|
@@ -0,0 +1,34 @@
|
|
1
|
+
# Description
|
2
|
+
|
3
|
+
# My Cookbook Readme
|
4
|
+
|
5
|
+
**`knife cookbook doc .` _rocks_**
|
6
|
+
|
7
|
+
# Requirements
|
8
|
+
|
9
|
+
## Platform:
|
10
|
+
|
11
|
+
* cookbook-authors
|
12
|
+
|
13
|
+
## Cookbooks:
|
14
|
+
|
15
|
+
* upon-magic
|
16
|
+
|
17
|
+
# Attributes
|
18
|
+
|
19
|
+
* `node['knife']['cookbook']['doc']` - Defaults to `successful automation`.
|
20
|
+
|
21
|
+
# Recipes
|
22
|
+
|
23
|
+
* [fixture::default](#fixturedefault) - The recipe is awesome.
|
24
|
+
|
25
|
+
## fixture::default
|
26
|
+
|
27
|
+
The recipe is awesome. It does thing 1, thing 2 and thing 3!
|
28
|
+
|
29
|
+
MyApp Admin Group: The group allowed to manage MyApp.
|
30
|
+
|
31
|
+
# Credits
|
32
|
+
|
33
|
+
* Mathias Lafeldt
|
34
|
+
* Peter Donald
|
data/fixture/README.md
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
|
@@ -0,0 +1 @@
|
|
1
|
+
default['knife']['cookbook']['doc'] = 'successful automation'
|
data/fixture/gemfile
ADDED
data/fixture/knife.rb
ADDED
data/fixture/metadata.rb
ADDED
@@ -0,0 +1,10 @@
|
|
1
|
+
name 'fixture'
|
2
|
+
maintainer 'A Cookbook Author'
|
3
|
+
maintainer_email 'author@example.com'
|
4
|
+
license 'MIT'
|
5
|
+
description 'Installs/Configures fixture'
|
6
|
+
long_description IO.read(File.join(File.dirname(__FILE__), 'README.md'))
|
7
|
+
version '0.1.0'
|
8
|
+
|
9
|
+
supports 'cookbook-authors'
|
10
|
+
depends 'upon-magic'
|
@@ -149,6 +149,12 @@
|
|
149
149
|
# License and Maintainer
|
150
150
|
|
151
151
|
Maintainer:: <%= maintainer %> (<<%= maintainer_email %>>)
|
152
|
+
<% unless source_url.empty? -%>
|
153
|
+
<%= 'Source:: ' + source_url %>
|
154
|
+
<% end -%>
|
155
|
+
<% unless issues_url.empty? -%>
|
156
|
+
<%= 'Issues:: ' + issues_url %>
|
157
|
+
<% end -%>
|
152
158
|
|
153
159
|
License:: <%= license %>
|
154
160
|
<% else -%>
|
@@ -39,13 +39,13 @@ module KnifeCookbookDoc
|
|
39
39
|
end
|
40
40
|
|
41
41
|
# get/parse comments
|
42
|
-
resource_data = resource_data.gsub(/^=begin\s*\n\s
|
42
|
+
resource_data = resource_data.gsub(/^=begin\s*\n\s*\#\ ?<\s*\n(.*?)^\s*\# ?\>\n=end\s*\n#{ATTRIBUTE_REGEX}/m) do
|
43
43
|
update_attribute($2, $1)
|
44
44
|
end
|
45
|
-
resource_data = resource_data.gsub(/^\s
|
45
|
+
resource_data = resource_data.gsub(/^\s*\# ?\<\n(.*?)^\s*\# ?\>\n#{ATTRIBUTE_REGEX}/m) do
|
46
46
|
update_attribute($2, $1.gsub(/^\s*\# ?/, ''))
|
47
47
|
end
|
48
|
-
resource_data = resource_data.gsub(/^\s
|
48
|
+
resource_data = resource_data.gsub(/^\s*\# ?\<\>\s(.*?$)\n#{ATTRIBUTE_REGEX}/) do
|
49
49
|
update_attribute($2, $1)
|
50
50
|
end
|
51
51
|
end
|
@@ -27,13 +27,13 @@ module KnifeCookbookDoc
|
|
27
27
|
|
28
28
|
def extract_description
|
29
29
|
description = []
|
30
|
-
IO.read(@filename).gsub(/^=begin *\n
|
30
|
+
IO.read(@filename).gsub(/^=begin *\n *\# ?\<\n(.*?)^ *\# ?\>\n=end *\n/m) do
|
31
31
|
description << $1
|
32
32
|
""
|
33
|
-
end.gsub(/^
|
33
|
+
end.gsub(/^ *\# ?\<\n(.*?)^ *\# ?\>\n/m) do
|
34
34
|
description << $1.gsub(/^ *\# ?/, '')
|
35
35
|
""
|
36
|
-
end.gsub(/^
|
36
|
+
end.gsub(/^ *\# ?\<\> (.*?)$/) do
|
37
37
|
description << $1
|
38
38
|
""
|
39
39
|
end
|
@@ -66,13 +66,33 @@ module KnifeCookbookDoc
|
|
66
66
|
@definitions
|
67
67
|
end
|
68
68
|
|
69
|
+
def cookbook_name
|
70
|
+
@metadata.name
|
71
|
+
end
|
72
|
+
|
69
73
|
def description
|
70
74
|
@metadata.description
|
71
75
|
end
|
72
76
|
|
77
|
+
def source_url
|
78
|
+
if @metadata.methods.include? :source_url
|
79
|
+
@metadata.source_url
|
80
|
+
else
|
81
|
+
""
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
def issues_url
|
86
|
+
if @metadata.methods.include? :issues_url
|
87
|
+
@metadata.issues_url
|
88
|
+
else
|
89
|
+
""
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
73
93
|
def platforms
|
74
94
|
@metadata.platforms.map do |platform, version|
|
75
|
-
format_constraint(platform
|
95
|
+
format_constraint(platform, version)
|
76
96
|
end
|
77
97
|
end
|
78
98
|
|
@@ -120,6 +140,10 @@ module KnifeCookbookDoc
|
|
120
140
|
@metadata.license
|
121
141
|
end
|
122
142
|
|
143
|
+
def name
|
144
|
+
@metadata.name
|
145
|
+
end
|
146
|
+
|
123
147
|
def get_binding
|
124
148
|
binding
|
125
149
|
end
|
@@ -10,11 +10,19 @@ describe KnifeCookbookDoc::AttributesModel do
|
|
10
10
|
#<> Single line comment
|
11
11
|
default['knife_cookbook_doc']['attr1'] = 'attr1_value'
|
12
12
|
|
13
|
+
# <> Another single line comment
|
14
|
+
default['knife_cookbook_doc']['attr1x'] = 'attr1x_value'
|
15
|
+
|
13
16
|
#<
|
14
17
|
# Multiline comment with single line of text
|
15
18
|
#>
|
16
19
|
default['knife_cookbook_doc']['attr2'] = 'attr2_value'
|
17
20
|
|
21
|
+
# <
|
22
|
+
# Another multiline comment with single line of text
|
23
|
+
# >
|
24
|
+
default['knife_cookbook_doc']['attr2x'] = 'attr2x_value'
|
25
|
+
|
18
26
|
=begin
|
19
27
|
#<
|
20
28
|
Multiline begin/end with single line of text
|
@@ -22,12 +30,25 @@ Multiline begin/end with single line of text
|
|
22
30
|
=end
|
23
31
|
default['knife_cookbook_doc']['attr3'] = 'attr3_value'
|
24
32
|
|
33
|
+
=begin
|
34
|
+
# <
|
35
|
+
Another multiline begin/end with single line of text
|
36
|
+
# >
|
37
|
+
=end
|
38
|
+
default['knife_cookbook_doc']['attr3x'] = 'attr3x_value'
|
39
|
+
|
25
40
|
#<
|
26
41
|
# Multiline comment with
|
27
|
-
multiple lines of text
|
42
|
+
# multiple lines of text
|
28
43
|
#>
|
29
44
|
default['knife_cookbook_doc']['attr4'] = 'attr4_value'
|
30
45
|
|
46
|
+
# <
|
47
|
+
# Another multiline comment with
|
48
|
+
# multiple lines of text
|
49
|
+
# >
|
50
|
+
default['knife_cookbook_doc']['attr4x'] = 'attr4x_value'
|
51
|
+
|
31
52
|
=begin
|
32
53
|
#<
|
33
54
|
Multiline begin/end with
|
@@ -35,6 +56,14 @@ multiple lines of text
|
|
35
56
|
#>
|
36
57
|
=end
|
37
58
|
default['knife_cookbook_doc']['attr5'] = 'attr5_value'
|
59
|
+
|
60
|
+
=begin
|
61
|
+
# <
|
62
|
+
Another multiline begin/end with
|
63
|
+
multiple lines of text
|
64
|
+
# >
|
65
|
+
=end
|
66
|
+
default['knife_cookbook_doc']['attr5x'] = 'attr5x_value'
|
38
67
|
EOS
|
39
68
|
}
|
40
69
|
subject do
|
@@ -52,6 +81,17 @@ EOS
|
|
52
81
|
)
|
53
82
|
end
|
54
83
|
|
84
|
+
it do
|
85
|
+
is_expected.to include(
|
86
|
+
[
|
87
|
+
"node['knife_cookbook_doc']['attr1x']",
|
88
|
+
'Another single line comment',
|
89
|
+
'attr1x_value',
|
90
|
+
[]
|
91
|
+
]
|
92
|
+
)
|
93
|
+
end
|
94
|
+
|
55
95
|
it do
|
56
96
|
is_expected.to include(
|
57
97
|
[
|
@@ -63,6 +103,17 @@ EOS
|
|
63
103
|
)
|
64
104
|
end
|
65
105
|
|
106
|
+
it do
|
107
|
+
is_expected.to include(
|
108
|
+
[
|
109
|
+
"node['knife_cookbook_doc']['attr2x']",
|
110
|
+
'Another multiline comment with single line of text',
|
111
|
+
'attr2x_value',
|
112
|
+
[]
|
113
|
+
]
|
114
|
+
)
|
115
|
+
end
|
116
|
+
|
66
117
|
it do
|
67
118
|
is_expected.to include(
|
68
119
|
[
|
@@ -74,6 +125,17 @@ EOS
|
|
74
125
|
)
|
75
126
|
end
|
76
127
|
|
128
|
+
it do
|
129
|
+
is_expected.to include(
|
130
|
+
[
|
131
|
+
"node['knife_cookbook_doc']['attr3x']",
|
132
|
+
'Another multiline begin/end with single line of text',
|
133
|
+
'attr3x_value',
|
134
|
+
[]
|
135
|
+
]
|
136
|
+
)
|
137
|
+
end
|
138
|
+
|
77
139
|
it do
|
78
140
|
is_expected.to include(
|
79
141
|
[
|
@@ -85,6 +147,17 @@ EOS
|
|
85
147
|
)
|
86
148
|
end
|
87
149
|
|
150
|
+
it do
|
151
|
+
is_expected.to include(
|
152
|
+
[
|
153
|
+
"node['knife_cookbook_doc']['attr4x']",
|
154
|
+
"Another multiline comment with\nmultiple lines of text",
|
155
|
+
'attr4x_value',
|
156
|
+
[]
|
157
|
+
]
|
158
|
+
)
|
159
|
+
end
|
160
|
+
|
88
161
|
it do
|
89
162
|
is_expected.to include(
|
90
163
|
[
|
@@ -95,5 +168,16 @@ EOS
|
|
95
168
|
]
|
96
169
|
)
|
97
170
|
end
|
171
|
+
|
172
|
+
it do
|
173
|
+
is_expected.to include(
|
174
|
+
[
|
175
|
+
"node['knife_cookbook_doc']['attr5x']",
|
176
|
+
"Another multiline begin/end with\nmultiple lines of text",
|
177
|
+
'attr5x_value',
|
178
|
+
[]
|
179
|
+
]
|
180
|
+
)
|
181
|
+
end
|
98
182
|
end
|
99
183
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: knife-cookbook-doc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.16.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mathias Lafeldt
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-
|
12
|
+
date: 2015-08-06 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: chef
|
@@ -76,13 +76,23 @@ extensions: []
|
|
76
76
|
extra_rdoc_files: []
|
77
77
|
files:
|
78
78
|
- .gitignore
|
79
|
+
- .travis.yml
|
79
80
|
- CHANGELOG.md
|
80
81
|
- CONTRIBUTING.md
|
81
82
|
- Gemfile
|
82
83
|
- LICENSE
|
83
84
|
- README.md
|
84
85
|
- Rakefile
|
85
|
-
-
|
86
|
+
- fixture/CHANGELOG.md
|
87
|
+
- fixture/README-expected.md
|
88
|
+
- fixture/README.md
|
89
|
+
- fixture/attributes/default.rb
|
90
|
+
- fixture/doc/credit.md
|
91
|
+
- fixture/doc/overview.md
|
92
|
+
- fixture/gemfile
|
93
|
+
- fixture/knife.rb
|
94
|
+
- fixture/metadata.rb
|
95
|
+
- fixture/recipes/default.rb
|
86
96
|
- knife_cookbook_doc.gemspec
|
87
97
|
- lib/chef/knife/README.md.erb
|
88
98
|
- lib/chef/knife/cookbook_doc.rb
|
data/TODO.md
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
* Autodetect travis usage and add badges automagically
|