puppet-strings 0.4.0 → 0.99.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 +4 -4
- data/CHANGELOG.md +122 -0
- data/COMMITTERS.md +185 -0
- data/CONTRIBUTING.md +89 -0
- data/Gemfile +38 -0
- data/JSON.md +511 -0
- data/LICENSE +13 -0
- data/README.md +416 -0
- data/Rakefile +49 -0
- data/lib/puppet-strings.rb +63 -0
- data/lib/puppet-strings/json.rb +49 -0
- data/lib/puppet-strings/tasks.rb +10 -0
- data/lib/puppet-strings/tasks/generate.rb +23 -0
- data/lib/puppet-strings/tasks/gh_pages.rb +43 -0
- data/lib/puppet-strings/yard.rb +96 -0
- data/lib/puppet-strings/yard/code_objects.rb +8 -0
- data/lib/puppet-strings/yard/code_objects/base.rb +14 -0
- data/lib/puppet-strings/yard/code_objects/class.rb +59 -0
- data/lib/puppet-strings/yard/code_objects/defined_type.rb +58 -0
- data/lib/puppet-strings/yard/code_objects/function.rb +93 -0
- data/lib/puppet-strings/yard/code_objects/group.rb +30 -0
- data/lib/puppet-strings/yard/code_objects/provider.rb +93 -0
- data/lib/puppet-strings/yard/code_objects/type.rb +146 -0
- data/lib/puppet-strings/yard/handlers.rb +16 -0
- data/lib/puppet-strings/yard/handlers/puppet/base.rb +44 -0
- data/lib/puppet-strings/yard/handlers/puppet/class_handler.rb +23 -0
- data/lib/puppet-strings/yard/handlers/puppet/defined_type_handler.rb +23 -0
- data/lib/puppet-strings/yard/handlers/puppet/function_handler.rb +42 -0
- data/lib/puppet-strings/yard/handlers/ruby/base.rb +38 -0
- data/lib/puppet-strings/yard/handlers/ruby/function_handler.rb +357 -0
- data/lib/puppet-strings/yard/handlers/ruby/provider_handler.rb +113 -0
- data/lib/puppet-strings/yard/handlers/ruby/type_handler.rb +194 -0
- data/lib/puppet-strings/yard/parsers.rb +7 -0
- data/lib/puppet-strings/yard/parsers/puppet/parser.rb +70 -0
- data/lib/puppet-strings/yard/parsers/puppet/statement.rb +146 -0
- data/lib/puppet-strings/yard/tags.rb +6 -0
- data/lib/puppet-strings/yard/tags/overload_tag.rb +109 -0
- data/lib/puppet-strings/yard/tags/parameter_directive.rb +24 -0
- data/lib/puppet-strings/yard/tags/property_directive.rb +24 -0
- data/lib/puppet-strings/yard/templates/default/fulldoc/html/full_list_puppet_class.erb +9 -0
- data/lib/puppet-strings/yard/templates/default/fulldoc/html/full_list_puppet_defined_type.erb +9 -0
- data/lib/puppet-strings/yard/templates/default/fulldoc/html/full_list_puppet_function.erb +10 -0
- data/lib/puppet-strings/yard/templates/default/fulldoc/html/full_list_puppet_provider.erb +10 -0
- data/lib/puppet-strings/yard/templates/default/fulldoc/html/full_list_puppet_type.erb +9 -0
- data/lib/puppet-strings/yard/templates/default/fulldoc/html/setup.rb +64 -0
- data/lib/puppet-strings/yard/templates/default/layout/html/objects.erb +35 -0
- data/lib/puppet-strings/yard/templates/default/layout/html/setup.rb +172 -0
- data/lib/puppet-strings/yard/templates/default/puppet_class/html/box_info.erb +26 -0
- data/lib/puppet-strings/yard/templates/default/puppet_class/html/header.erb +1 -0
- data/lib/puppet-strings/yard/templates/default/puppet_class/html/overview.erb +6 -0
- data/lib/puppet-strings/yard/templates/default/puppet_class/html/setup.rb +14 -0
- data/lib/puppet-strings/yard/templates/default/puppet_class/html/source.erb +12 -0
- data/lib/puppet-strings/yard/templates/default/puppet_defined_type/html/box_info.erb +10 -0
- data/lib/puppet-strings/yard/templates/default/puppet_defined_type/html/header.erb +1 -0
- data/lib/puppet-strings/yard/templates/default/puppet_defined_type/html/overview.erb +6 -0
- data/lib/puppet-strings/yard/templates/default/puppet_defined_type/html/setup.rb +5 -0
- data/lib/puppet-strings/yard/templates/default/puppet_defined_type/html/source.erb +12 -0
- data/lib/puppet-strings/yard/templates/default/puppet_function/html/box_info.erb +14 -0
- data/lib/puppet-strings/yard/templates/default/puppet_function/html/header.erb +1 -0
- data/lib/puppet-strings/yard/templates/default/puppet_function/html/overview.erb +18 -0
- data/lib/puppet-strings/yard/templates/default/puppet_function/html/setup.rb +5 -0
- data/lib/puppet-strings/yard/templates/default/puppet_function/html/source.erb +12 -0
- data/lib/puppet-strings/yard/templates/default/puppet_provider/html/box_info.erb +14 -0
- data/lib/puppet-strings/yard/templates/default/puppet_provider/html/collection.erb +10 -0
- data/lib/puppet-strings/yard/templates/default/puppet_provider/html/features.erb +12 -0
- data/lib/puppet-strings/yard/templates/default/puppet_provider/html/header.erb +1 -0
- data/lib/puppet-strings/yard/templates/default/puppet_provider/html/overview.erb +6 -0
- data/lib/puppet-strings/yard/templates/default/puppet_provider/html/setup.rb +29 -0
- data/lib/puppet-strings/yard/templates/default/puppet_type/html/box_info.erb +20 -0
- data/lib/puppet-strings/yard/templates/default/puppet_type/html/features.erb +13 -0
- data/lib/puppet-strings/yard/templates/default/puppet_type/html/header.erb +1 -0
- data/lib/puppet-strings/yard/templates/default/puppet_type/html/overview.erb +6 -0
- data/lib/puppet-strings/yard/templates/default/puppet_type/html/parameters.erb +35 -0
- data/lib/puppet-strings/yard/templates/default/puppet_type/html/setup.rb +32 -0
- data/lib/puppet-strings/yard/templates/default/tags/html/puppet_overload.erb +12 -0
- data/lib/puppet-strings/yard/templates/default/tags/setup.rb +15 -0
- data/lib/puppet/application/strings.rb +1 -0
- data/lib/puppet/face/strings.rb +80 -39
- data/spec/acceptance/emit_json_options.rb +41 -0
- data/spec/acceptance/lib/util.rb +15 -0
- data/spec/acceptance/running_strings_generate.rb +54 -0
- data/spec/fixtures/acceptance/modules/test/functions/add.pp +9 -0
- data/spec/fixtures/acceptance/modules/test/lib/puppet/functions/4x_function.rb +5 -0
- data/spec/fixtures/acceptance/modules/test/lib/puppet/parser/functions/function3x.rb +2 -0
- data/spec/fixtures/acceptance/modules/test/lib/puppet/provider/server/linux.rb +9 -0
- data/spec/fixtures/acceptance/modules/test/lib/puppet/type/database.rb +15 -0
- data/spec/fixtures/acceptance/modules/test/manifests/init.pp +27 -0
- data/spec/fixtures/acceptance/modules/test/manifests/triple_nested_classes.pp +27 -0
- data/spec/fixtures/acceptance/modules/test/metadata.json +6 -0
- data/spec/fixtures/unit/json/output.json +348 -0
- data/spec/fixtures/unit/json/output_without_puppet_function.json +301 -0
- data/spec/spec_helper.rb +21 -0
- data/spec/spec_helper_acceptance.rb +27 -0
- data/spec/unit/puppet-strings/json_spec.rb +136 -0
- data/spec/unit/puppet-strings/yard/handlers/puppet/class_handler_spec.rb +155 -0
- data/spec/unit/puppet-strings/yard/handlers/puppet/defined_type_handler_spec.rb +155 -0
- data/spec/unit/puppet-strings/yard/handlers/puppet/function_handler_spec.rb +169 -0
- data/spec/unit/puppet-strings/yard/handlers/ruby/function_handler_spec.rb +613 -0
- data/spec/unit/puppet-strings/yard/handlers/ruby/provider_handler_spec.rb +90 -0
- data/spec/unit/puppet-strings/yard/handlers/ruby/type_handler_spec.rb +214 -0
- data/spec/unit/puppet-strings/yard/parsers/puppet/parser_spec.rb +171 -0
- metadata +115 -92
- data/lib/puppet-strings/rake_tasks.rb +0 -18
- data/lib/puppet_x/puppetlabs/strings.rb +0 -64
- data/lib/puppet_x/puppetlabs/strings/actions.rb +0 -92
- data/lib/puppet_x/puppetlabs/strings/pops/yard_statement.rb +0 -79
- data/lib/puppet_x/puppetlabs/strings/pops/yard_transformer.rb +0 -47
- data/lib/puppet_x/puppetlabs/strings/util.rb +0 -65
- data/lib/puppet_x/puppetlabs/strings/yard/code_objects/defined_type_object.rb +0 -33
- data/lib/puppet_x/puppetlabs/strings/yard/code_objects/host_class_object.rb +0 -22
- data/lib/puppet_x/puppetlabs/strings/yard/code_objects/method_object.rb +0 -62
- data/lib/puppet_x/puppetlabs/strings/yard/code_objects/provider_object.rb +0 -24
- data/lib/puppet_x/puppetlabs/strings/yard/code_objects/puppet_namespace_object.rb +0 -48
- data/lib/puppet_x/puppetlabs/strings/yard/code_objects/type_object.rb +0 -42
- data/lib/puppet_x/puppetlabs/strings/yard/core_ext/yard.rb +0 -40
- data/lib/puppet_x/puppetlabs/strings/yard/handlers/base.rb +0 -13
- data/lib/puppet_x/puppetlabs/strings/yard/handlers/defined_type_handler.rb +0 -31
- data/lib/puppet_x/puppetlabs/strings/yard/handlers/heredoc_helper.rb +0 -80
- data/lib/puppet_x/puppetlabs/strings/yard/handlers/host_class_handler.rb +0 -42
- data/lib/puppet_x/puppetlabs/strings/yard/handlers/provider_handler.rb +0 -95
- data/lib/puppet_x/puppetlabs/strings/yard/handlers/puppet_3x_function_handler.rb +0 -54
- data/lib/puppet_x/puppetlabs/strings/yard/handlers/puppet_4x_function_handler.rb +0 -234
- data/lib/puppet_x/puppetlabs/strings/yard/handlers/type_handler.rb +0 -295
- data/lib/puppet_x/puppetlabs/strings/yard/json_registry_store.rb +0 -85
- data/lib/puppet_x/puppetlabs/strings/yard/monkey_patches.rb +0 -68
- data/lib/puppet_x/puppetlabs/strings/yard/parser.rb +0 -30
- data/lib/puppet_x/puppetlabs/strings/yard/tags/directives.rb +0 -9
- data/lib/puppet_x/puppetlabs/strings/yard/templates/default/definedtype/html/docstring.erb +0 -34
- data/lib/puppet_x/puppetlabs/strings/yard/templates/default/definedtype/html/header.erb +0 -5
- data/lib/puppet_x/puppetlabs/strings/yard/templates/default/definedtype/html/parameter_details.erb +0 -6
- data/lib/puppet_x/puppetlabs/strings/yard/templates/default/definedtype/html/setup.rb +0 -1
- data/lib/puppet_x/puppetlabs/strings/yard/templates/default/definedtype/setup.rb +0 -49
- data/lib/puppet_x/puppetlabs/strings/yard/templates/default/fulldoc/html/full_list_class.erb +0 -2
- data/lib/puppet_x/puppetlabs/strings/yard/templates/default/fulldoc/html/full_list_puppet_manifest.erb +0 -1
- data/lib/puppet_x/puppetlabs/strings/yard/templates/default/fulldoc/html/full_list_puppet_plugin.erb +0 -21
- data/lib/puppet_x/puppetlabs/strings/yard/templates/default/fulldoc/html/full_list_puppet_provider.erb +0 -1
- data/lib/puppet_x/puppetlabs/strings/yard/templates/default/fulldoc/html/full_list_puppet_type.erb +0 -1
- data/lib/puppet_x/puppetlabs/strings/yard/templates/default/fulldoc/html/setup.rb +0 -82
- data/lib/puppet_x/puppetlabs/strings/yard/templates/default/hostclass/html/box_info.erb +0 -22
- data/lib/puppet_x/puppetlabs/strings/yard/templates/default/hostclass/html/setup.rb +0 -1
- data/lib/puppet_x/puppetlabs/strings/yard/templates/default/hostclass/html/subclasses.erb +0 -4
- data/lib/puppet_x/puppetlabs/strings/yard/templates/default/hostclass/setup.rb +0 -21
- data/lib/puppet_x/puppetlabs/strings/yard/templates/default/html_helper.rb +0 -139
- data/lib/puppet_x/puppetlabs/strings/yard/templates/default/layout/html/setup.rb +0 -18
- data/lib/puppet_x/puppetlabs/strings/yard/templates/default/method_details/html/header.erb +0 -17
- data/lib/puppet_x/puppetlabs/strings/yard/templates/default/method_details/setup.rb +0 -21
- data/lib/puppet_x/puppetlabs/strings/yard/templates/default/method_details/text/header.erb +0 -2
- data/lib/puppet_x/puppetlabs/strings/yard/templates/default/provider/html/command_details.erb +0 -8
- data/lib/puppet_x/puppetlabs/strings/yard/templates/default/provider/html/confine_details.erb +0 -10
- data/lib/puppet_x/puppetlabs/strings/yard/templates/default/provider/html/default_details.erb +0 -10
- data/lib/puppet_x/puppetlabs/strings/yard/templates/default/provider/html/docstring.erb +0 -34
- data/lib/puppet_x/puppetlabs/strings/yard/templates/default/provider/html/feature_details.erb +0 -10
- data/lib/puppet_x/puppetlabs/strings/yard/templates/default/provider/html/header.erb +0 -5
- data/lib/puppet_x/puppetlabs/strings/yard/templates/default/provider/html/setup.rb +0 -1
- data/lib/puppet_x/puppetlabs/strings/yard/templates/default/provider/setup.rb +0 -50
- data/lib/puppet_x/puppetlabs/strings/yard/templates/default/puppetnamespace/html/box_info.erb +0 -11
- data/lib/puppet_x/puppetlabs/strings/yard/templates/default/puppetnamespace/html/header.erb +0 -5
- data/lib/puppet_x/puppetlabs/strings/yard/templates/default/puppetnamespace/html/method_details_list.erb +0 -53
- data/lib/puppet_x/puppetlabs/strings/yard/templates/default/puppetnamespace/html/method_summary.erb +0 -20
- data/lib/puppet_x/puppetlabs/strings/yard/templates/default/puppetnamespace/html/setup.rb +0 -1
- data/lib/puppet_x/puppetlabs/strings/yard/templates/default/puppetnamespace/setup.rb +0 -91
- data/lib/puppet_x/puppetlabs/strings/yard/templates/default/template_helper.rb +0 -192
- data/lib/puppet_x/puppetlabs/strings/yard/templates/default/type/html/docstring.erb +0 -34
- data/lib/puppet_x/puppetlabs/strings/yard/templates/default/type/html/header.erb +0 -5
- data/lib/puppet_x/puppetlabs/strings/yard/templates/default/type/html/parameter_details.erb +0 -12
- data/lib/puppet_x/puppetlabs/strings/yard/templates/default/type/html/provider_details.erb +0 -10
- data/lib/puppet_x/puppetlabs/strings/yard/templates/default/type/html/setup.rb +0 -1
- data/lib/puppet_x/puppetlabs/strings/yard/templates/default/type/setup.rb +0 -55
|
@@ -0,0 +1,301 @@
|
|
|
1
|
+
{
|
|
2
|
+
"puppet_classes": [
|
|
3
|
+
{
|
|
4
|
+
"name": "klass",
|
|
5
|
+
"file": "(stdin)",
|
|
6
|
+
"line": 5,
|
|
7
|
+
"inherits": "foo::bar",
|
|
8
|
+
"docstring": {
|
|
9
|
+
"text": "A simple class.",
|
|
10
|
+
"tags": [
|
|
11
|
+
{
|
|
12
|
+
"tag_name": "param",
|
|
13
|
+
"text": "First param.",
|
|
14
|
+
"types": [
|
|
15
|
+
"Integer"
|
|
16
|
+
],
|
|
17
|
+
"name": "param1"
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"tag_name": "param",
|
|
21
|
+
"text": "Second param.",
|
|
22
|
+
"types": [
|
|
23
|
+
"Any"
|
|
24
|
+
],
|
|
25
|
+
"name": "param2"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"tag_name": "param",
|
|
29
|
+
"text": "Third param.",
|
|
30
|
+
"types": [
|
|
31
|
+
"String"
|
|
32
|
+
],
|
|
33
|
+
"name": "param3"
|
|
34
|
+
}
|
|
35
|
+
]
|
|
36
|
+
},
|
|
37
|
+
"defaults": {
|
|
38
|
+
"param3": "hi"
|
|
39
|
+
},
|
|
40
|
+
"source": "class klass(Integer $param1, $param2, String $param3 = hi) inherits foo::bar {\n}"
|
|
41
|
+
}
|
|
42
|
+
],
|
|
43
|
+
"defined_types": [
|
|
44
|
+
{
|
|
45
|
+
"name": "dt",
|
|
46
|
+
"file": "(stdin)",
|
|
47
|
+
"line": 12,
|
|
48
|
+
"docstring": {
|
|
49
|
+
"text": "A simple defined type.",
|
|
50
|
+
"tags": [
|
|
51
|
+
{
|
|
52
|
+
"tag_name": "param",
|
|
53
|
+
"text": "First param.",
|
|
54
|
+
"types": [
|
|
55
|
+
"Integer"
|
|
56
|
+
],
|
|
57
|
+
"name": "param1"
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"tag_name": "param",
|
|
61
|
+
"text": "Second param.",
|
|
62
|
+
"types": [
|
|
63
|
+
"Any"
|
|
64
|
+
],
|
|
65
|
+
"name": "param2"
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
"tag_name": "param",
|
|
69
|
+
"text": "Third param.",
|
|
70
|
+
"types": [
|
|
71
|
+
"String"
|
|
72
|
+
],
|
|
73
|
+
"name": "param3"
|
|
74
|
+
}
|
|
75
|
+
]
|
|
76
|
+
},
|
|
77
|
+
"defaults": {
|
|
78
|
+
"param3": "hi"
|
|
79
|
+
},
|
|
80
|
+
"source": "define dt(Integer $param1, $param2, String $param3 = hi) {\n}"
|
|
81
|
+
}
|
|
82
|
+
],
|
|
83
|
+
"resource_types": [
|
|
84
|
+
{
|
|
85
|
+
"name": "database",
|
|
86
|
+
"file": "(stdin)",
|
|
87
|
+
"line": 43,
|
|
88
|
+
"docstring": {
|
|
89
|
+
"text": "An example database server resource type."
|
|
90
|
+
},
|
|
91
|
+
"properties": [
|
|
92
|
+
{
|
|
93
|
+
"name": "ensure",
|
|
94
|
+
"description": "What state the database should be in.",
|
|
95
|
+
"values": [
|
|
96
|
+
"present",
|
|
97
|
+
"absent",
|
|
98
|
+
"up",
|
|
99
|
+
"down"
|
|
100
|
+
],
|
|
101
|
+
"aliases": {
|
|
102
|
+
"up": "present",
|
|
103
|
+
"down": "absent"
|
|
104
|
+
},
|
|
105
|
+
"default": "up"
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
"name": "file",
|
|
109
|
+
"description": "The database file to use."
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
"name": "log_level",
|
|
113
|
+
"description": "The log level to use.",
|
|
114
|
+
"values": [
|
|
115
|
+
"debug",
|
|
116
|
+
"warn",
|
|
117
|
+
"error"
|
|
118
|
+
],
|
|
119
|
+
"default": "warn"
|
|
120
|
+
}
|
|
121
|
+
],
|
|
122
|
+
"parameters": [
|
|
123
|
+
{
|
|
124
|
+
"name": "address",
|
|
125
|
+
"description": "The database server name.",
|
|
126
|
+
"isnamevar": true
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
"name": "encryption_key",
|
|
130
|
+
"description": "The encryption key to use."
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
"name": "encrypt",
|
|
134
|
+
"description": "Whether or not to encrypt the database.",
|
|
135
|
+
"values": [
|
|
136
|
+
"true",
|
|
137
|
+
"false",
|
|
138
|
+
"yes",
|
|
139
|
+
"no"
|
|
140
|
+
],
|
|
141
|
+
"default": "false"
|
|
142
|
+
}
|
|
143
|
+
],
|
|
144
|
+
"features": [
|
|
145
|
+
{
|
|
146
|
+
"name": "encryption",
|
|
147
|
+
"description": "The provider supports encryption."
|
|
148
|
+
}
|
|
149
|
+
]
|
|
150
|
+
}
|
|
151
|
+
],
|
|
152
|
+
"providers": [
|
|
153
|
+
{
|
|
154
|
+
"name": "linux",
|
|
155
|
+
"type_name": "database",
|
|
156
|
+
"file": "(stdin)",
|
|
157
|
+
"line": 33,
|
|
158
|
+
"docstring": {
|
|
159
|
+
"text": "An example provider on Linux."
|
|
160
|
+
},
|
|
161
|
+
"confines": {
|
|
162
|
+
"kernel": "Linux",
|
|
163
|
+
"osfamily": "RedHat"
|
|
164
|
+
},
|
|
165
|
+
"features": [
|
|
166
|
+
"implements_some_feature",
|
|
167
|
+
"some_other_feature"
|
|
168
|
+
],
|
|
169
|
+
"defaults": {
|
|
170
|
+
"kernel": "Linux"
|
|
171
|
+
},
|
|
172
|
+
"commands": {
|
|
173
|
+
"foo": "/usr/bin/foo"
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
],
|
|
177
|
+
"puppet_functions": [
|
|
178
|
+
{
|
|
179
|
+
"name": "func3x",
|
|
180
|
+
"file": "(stdin)",
|
|
181
|
+
"line": 1,
|
|
182
|
+
"type": "ruby3x",
|
|
183
|
+
"signature": "func3x(String $first, Any $second)",
|
|
184
|
+
"docstring": {
|
|
185
|
+
"text": "An example 3.x function.",
|
|
186
|
+
"tags": [
|
|
187
|
+
{
|
|
188
|
+
"tag_name": "param",
|
|
189
|
+
"text": "The first parameter.",
|
|
190
|
+
"types": [
|
|
191
|
+
"String"
|
|
192
|
+
],
|
|
193
|
+
"name": "first"
|
|
194
|
+
},
|
|
195
|
+
{
|
|
196
|
+
"tag_name": "param",
|
|
197
|
+
"text": "The second parameter.",
|
|
198
|
+
"types": [
|
|
199
|
+
"Any"
|
|
200
|
+
],
|
|
201
|
+
"name": "second"
|
|
202
|
+
},
|
|
203
|
+
{
|
|
204
|
+
"tag_name": "return",
|
|
205
|
+
"text": "Returns nothing.",
|
|
206
|
+
"types": [
|
|
207
|
+
"Undef"
|
|
208
|
+
]
|
|
209
|
+
}
|
|
210
|
+
]
|
|
211
|
+
},
|
|
212
|
+
"source": "Puppet::Parser::Functions.newfunction(:func3x, doc: <<-DOC\nAn example 3.x function.\n@param [String] first The first parameter.\n@param second The second parameter.\n@return [Undef] Returns nothing.\nDOC\n) do |*args|\nend"
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
"name": "func4x",
|
|
216
|
+
"file": "(stdin)",
|
|
217
|
+
"line": 11,
|
|
218
|
+
"type": "ruby4x",
|
|
219
|
+
"docstring": {
|
|
220
|
+
"text": "An example 4.x function.",
|
|
221
|
+
"tags": [
|
|
222
|
+
{
|
|
223
|
+
"tag_name": "overload",
|
|
224
|
+
"signature": "func4x(Integer $param1, Any $param2, Optional[Array[String]] $param3)",
|
|
225
|
+
"docstring": {
|
|
226
|
+
"text": "The first overload.",
|
|
227
|
+
"tags": [
|
|
228
|
+
{
|
|
229
|
+
"tag_name": "param",
|
|
230
|
+
"text": "The first parameter.",
|
|
231
|
+
"types": [
|
|
232
|
+
"Integer"
|
|
233
|
+
],
|
|
234
|
+
"name": "param1"
|
|
235
|
+
},
|
|
236
|
+
{
|
|
237
|
+
"tag_name": "param",
|
|
238
|
+
"text": "The second parameter.",
|
|
239
|
+
"types": [
|
|
240
|
+
"Any"
|
|
241
|
+
],
|
|
242
|
+
"name": "param2"
|
|
243
|
+
},
|
|
244
|
+
{
|
|
245
|
+
"tag_name": "param",
|
|
246
|
+
"text": "The third parameter.",
|
|
247
|
+
"types": [
|
|
248
|
+
"Optional[Array[String]]"
|
|
249
|
+
],
|
|
250
|
+
"name": "param3"
|
|
251
|
+
},
|
|
252
|
+
{
|
|
253
|
+
"tag_name": "return",
|
|
254
|
+
"text": "Returns nothing.",
|
|
255
|
+
"types": [
|
|
256
|
+
"Undef"
|
|
257
|
+
]
|
|
258
|
+
}
|
|
259
|
+
]
|
|
260
|
+
},
|
|
261
|
+
"name": "func4x"
|
|
262
|
+
},
|
|
263
|
+
{
|
|
264
|
+
"tag_name": "overload",
|
|
265
|
+
"signature": "func4x(Boolean $param, Callable &$block)",
|
|
266
|
+
"docstring": {
|
|
267
|
+
"text": "The second overload.",
|
|
268
|
+
"tags": [
|
|
269
|
+
{
|
|
270
|
+
"tag_name": "param",
|
|
271
|
+
"text": "The first parameter.",
|
|
272
|
+
"types": [
|
|
273
|
+
"Boolean"
|
|
274
|
+
],
|
|
275
|
+
"name": "param"
|
|
276
|
+
},
|
|
277
|
+
{
|
|
278
|
+
"tag_name": "param",
|
|
279
|
+
"text": "The block parameter.",
|
|
280
|
+
"types": [
|
|
281
|
+
"Callable"
|
|
282
|
+
],
|
|
283
|
+
"name": "&block"
|
|
284
|
+
},
|
|
285
|
+
{
|
|
286
|
+
"tag_name": "return",
|
|
287
|
+
"text": "Returns a string.",
|
|
288
|
+
"types": [
|
|
289
|
+
"String"
|
|
290
|
+
]
|
|
291
|
+
}
|
|
292
|
+
]
|
|
293
|
+
},
|
|
294
|
+
"name": "func4x"
|
|
295
|
+
}
|
|
296
|
+
]
|
|
297
|
+
},
|
|
298
|
+
"source": "Puppet::Functions.create_function(:func4x) do\n # The first overload.\n # @param param1 The first parameter.\n # @param param2 The second parameter.\n # @param param3 The third parameter.\n # @return [Undef] Returns nothing.\n dispatch :foo do\n param 'Integer', :param1\n param 'Any', :param2\n optional_param 'Array[String]', :param3\n end\n\n # The second overload.\n # @param param The first parameter.\n # @param block The block parameter.\n # @return [String] Returns a string.\n dispatch :other do\n param 'Boolean', :param\n block_param\n end\nend"
|
|
299
|
+
}
|
|
300
|
+
]
|
|
301
|
+
}
|
data/spec/spec_helper.rb
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
require 'mocha'
|
|
2
|
+
require 'rspec'
|
|
3
|
+
require 'puppet/version'
|
|
4
|
+
require 'puppet-strings'
|
|
5
|
+
require 'puppet-strings/yard'
|
|
6
|
+
|
|
7
|
+
# Explicitly set up YARD once
|
|
8
|
+
PuppetStrings::Yard.setup!
|
|
9
|
+
|
|
10
|
+
# Enable testing of Puppet functions if running against 4.1+
|
|
11
|
+
TEST_PUPPET_FUNCTIONS = Gem::Dependency.new('', '>= 4.1.0').match?('', Puppet::PUPPETVERSION)
|
|
12
|
+
|
|
13
|
+
RSpec.configure do |config|
|
|
14
|
+
config.mock_with :mocha
|
|
15
|
+
|
|
16
|
+
config.before(:each) do
|
|
17
|
+
# Always clear the YARD registry before each example
|
|
18
|
+
YARD::Registry.clear
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
require 'beaker-rspec/spec_helper'
|
|
2
|
+
require 'beaker-rspec/helpers/serverspec'
|
|
3
|
+
|
|
4
|
+
$LOAD_PATH << File.expand_path(File.join(File.dirname(__FILE__), 'acceptance/lib'))
|
|
5
|
+
|
|
6
|
+
unless ENV['RS_PROVISION'] == 'no'
|
|
7
|
+
install_puppet
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
RSpec.configure do |c|
|
|
11
|
+
# Readable test descriptions
|
|
12
|
+
c.formatter = :documentation
|
|
13
|
+
|
|
14
|
+
# Configure all nodes in nodeset
|
|
15
|
+
c.before :suite do
|
|
16
|
+
hosts.each do |host|
|
|
17
|
+
scp_to(host, Dir.glob('puppet-strings*.gem').first, 'puppet-strings.gem')
|
|
18
|
+
on host, 'gem install puppet-strings.gem'
|
|
19
|
+
|
|
20
|
+
scp_to(host, Dir.glob('spec/fixtures/acceptance/modules/test/pkg/username-test*.gz').first, 'test.tar.gz')
|
|
21
|
+
on host, puppet('module', 'install', 'test.tar.gz')
|
|
22
|
+
|
|
23
|
+
on host, 'gem install yard'
|
|
24
|
+
on host, 'gem install rgen'
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
require 'puppet-strings/json'
|
|
3
|
+
require 'tempfile'
|
|
4
|
+
|
|
5
|
+
describe PuppetStrings::Json do
|
|
6
|
+
before :each do
|
|
7
|
+
# Populate the YARD registry with both Puppet and Ruby source
|
|
8
|
+
YARD::Parser::SourceParser.parse_string(<<-SOURCE, :puppet)
|
|
9
|
+
# A simple class.
|
|
10
|
+
# @param param1 First param.
|
|
11
|
+
# @param param2 Second param.
|
|
12
|
+
# @param param3 Third param.
|
|
13
|
+
class klass(Integer $param1, $param2, String $param3 = hi) inherits foo::bar {
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
# A simple defined type.
|
|
17
|
+
# @param param1 First param.
|
|
18
|
+
# @param param2 Second param.
|
|
19
|
+
# @param param3 Third param.
|
|
20
|
+
define dt(Integer $param1, $param2, String $param3 = hi) {
|
|
21
|
+
}
|
|
22
|
+
SOURCE
|
|
23
|
+
|
|
24
|
+
# Only include Puppet functions for 4.1+
|
|
25
|
+
YARD::Parser::SourceParser.parse_string(<<-SOURCE, :puppet) if TEST_PUPPET_FUNCTIONS
|
|
26
|
+
# A simple function.
|
|
27
|
+
# @param param1 First param.
|
|
28
|
+
# @param param2 Second param.
|
|
29
|
+
# @param param3 Third param.
|
|
30
|
+
# @return [Undef] Returns nothing.
|
|
31
|
+
function func(Integer $param1, $param2, String $param3 = hi) {
|
|
32
|
+
}
|
|
33
|
+
SOURCE
|
|
34
|
+
|
|
35
|
+
YARD::Parser::SourceParser.parse_string(<<-SOURCE, :ruby)
|
|
36
|
+
Puppet::Parser::Functions.newfunction(:func3x, doc: <<-DOC
|
|
37
|
+
An example 3.x function.
|
|
38
|
+
@param [String] first The first parameter.
|
|
39
|
+
@param second The second parameter.
|
|
40
|
+
@return [Undef] Returns nothing.
|
|
41
|
+
DOC
|
|
42
|
+
) do |*args|
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
# An example 4.x function.
|
|
46
|
+
Puppet::Functions.create_function(:func4x) do
|
|
47
|
+
# The first overload.
|
|
48
|
+
# @param param1 The first parameter.
|
|
49
|
+
# @param param2 The second parameter.
|
|
50
|
+
# @param param3 The third parameter.
|
|
51
|
+
# @return [Undef] Returns nothing.
|
|
52
|
+
dispatch :foo do
|
|
53
|
+
param 'Integer', :param1
|
|
54
|
+
param 'Any', :param2
|
|
55
|
+
optional_param 'Array[String]', :param3
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
# The second overload.
|
|
59
|
+
# @param param The first parameter.
|
|
60
|
+
# @param block The block parameter.
|
|
61
|
+
# @return [String] Returns a string.
|
|
62
|
+
dispatch :other do
|
|
63
|
+
param 'Boolean', :param
|
|
64
|
+
block_param
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
Puppet::Type.type(:database).provide :linux do
|
|
69
|
+
desc 'An example provider on Linux.'
|
|
70
|
+
confine kernel: 'Linux'
|
|
71
|
+
confine osfamily: 'RedHat'
|
|
72
|
+
defaultfor kernel: 'Linux'
|
|
73
|
+
has_feature :implements_some_feature
|
|
74
|
+
has_feature :some_other_feature
|
|
75
|
+
commands foo: /usr/bin/foo
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
Puppet::Type.newtype(:database) do
|
|
79
|
+
desc 'An example database server resource type.'
|
|
80
|
+
feature :encryption, 'The provider supports encryption.', methods: [:encrypt]
|
|
81
|
+
ensurable do
|
|
82
|
+
desc 'What state the database should be in.'
|
|
83
|
+
defaultvalues
|
|
84
|
+
aliasvalue(:up, :present)
|
|
85
|
+
aliasvalue(:down, :absent)
|
|
86
|
+
defaultto :up
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
newparam(:address) do
|
|
90
|
+
isnamevar
|
|
91
|
+
desc 'The database server name.'
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
newparam(:encryption_key, required_features: :encryption) do
|
|
95
|
+
desc 'The encryption key to use.'
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
newparam(:encrypt, :parent => Puppet::Parameter::Boolean) do
|
|
99
|
+
desc 'Whether or not to encrypt the database.'
|
|
100
|
+
defaultto false
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
newproperty(:file) do
|
|
104
|
+
desc 'The database file to use.'
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
newproperty(:log_level) do
|
|
108
|
+
desc 'The log level to use.'
|
|
109
|
+
newvalue(:debug)
|
|
110
|
+
newvalue(:warn)
|
|
111
|
+
newvalue(:error)
|
|
112
|
+
defaultto 'warn'
|
|
113
|
+
end
|
|
114
|
+
end
|
|
115
|
+
SOURCE
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
let(:filename) { TEST_PUPPET_FUNCTIONS ? 'output.json' : 'output_without_puppet_function.json' }
|
|
119
|
+
let(:baseline_path) { File.join(File.dirname(__FILE__), "../../fixtures/unit/json/#{filename}") }
|
|
120
|
+
let(:baseline) { File.read(baseline_path) }
|
|
121
|
+
|
|
122
|
+
describe 'rendering JSON to a file' do
|
|
123
|
+
it 'should output the expected JSON content' do
|
|
124
|
+
Tempfile.open('json') do |file|
|
|
125
|
+
PuppetStrings::Json.render(file.path)
|
|
126
|
+
expect(File.read(file.path)).to eq(baseline)
|
|
127
|
+
end
|
|
128
|
+
end
|
|
129
|
+
end
|
|
130
|
+
|
|
131
|
+
describe 'rendering JSON to stdout' do
|
|
132
|
+
it 'should output the expected JSON content' do
|
|
133
|
+
expect{ PuppetStrings::Json.render(nil) }.to output(baseline).to_stdout
|
|
134
|
+
end
|
|
135
|
+
end
|
|
136
|
+
end
|