puppet-strings 2.1.0 → 2.5.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 +78 -4
- data/CONTRIBUTING.md +32 -2
- data/README.md +81 -17
- data/lib/puppet-strings.rb +13 -4
- data/lib/puppet-strings/describe.rb +68 -0
- data/lib/puppet-strings/json.rb +2 -38
- data/lib/puppet-strings/markdown.rb +3 -1
- data/lib/puppet-strings/markdown/base.rb +37 -16
- data/lib/puppet-strings/markdown/data_type.rb +34 -0
- data/lib/puppet-strings/markdown/data_types.rb +41 -0
- data/lib/puppet-strings/markdown/function.rb +2 -2
- data/lib/puppet-strings/markdown/resource_type.rb +19 -2
- data/lib/puppet-strings/markdown/table_of_contents.rb +1 -0
- data/lib/puppet-strings/markdown/templates/classes_and_defines.erb +12 -4
- data/lib/puppet-strings/markdown/templates/data_type.erb +93 -0
- data/lib/puppet-strings/markdown/templates/data_type_function.erb +67 -0
- data/lib/puppet-strings/markdown/templates/function.erb +36 -1
- data/lib/puppet-strings/markdown/templates/puppet_task.erb +1 -1
- data/lib/puppet-strings/markdown/templates/resource_type.erb +32 -12
- data/lib/puppet-strings/markdown/templates/table_of_contents.erb +6 -6
- data/lib/puppet-strings/tasks/generate.rb +10 -3
- data/lib/puppet-strings/version.rb +1 -1
- data/lib/puppet-strings/yard.rb +16 -0
- data/lib/puppet-strings/yard/code_objects.rb +2 -0
- data/lib/puppet-strings/yard/code_objects/class.rb +2 -2
- data/lib/puppet-strings/yard/code_objects/data_type.rb +100 -0
- data/lib/puppet-strings/yard/code_objects/data_type_alias.rb +58 -0
- data/lib/puppet-strings/yard/code_objects/defined_type.rb +2 -2
- data/lib/puppet-strings/yard/code_objects/function.rb +4 -4
- data/lib/puppet-strings/yard/code_objects/plan.rb +2 -2
- data/lib/puppet-strings/yard/code_objects/provider.rb +1 -1
- data/lib/puppet-strings/yard/code_objects/task.rb +1 -1
- data/lib/puppet-strings/yard/code_objects/type.rb +48 -6
- data/lib/puppet-strings/yard/handlers.rb +3 -0
- data/lib/puppet-strings/yard/handlers/puppet/data_type_alias_handler.rb +24 -0
- data/lib/puppet-strings/yard/handlers/ruby/base.rb +12 -1
- data/lib/puppet-strings/yard/handlers/ruby/data_type_handler.rb +393 -0
- data/lib/puppet-strings/yard/handlers/ruby/function_handler.rb +2 -12
- data/lib/puppet-strings/yard/handlers/ruby/provider_handler.rb +1 -9
- data/lib/puppet-strings/yard/handlers/ruby/rsapi_handler.rb +3 -3
- data/lib/puppet-strings/yard/handlers/ruby/type_base.rb +135 -0
- data/lib/puppet-strings/yard/handlers/ruby/type_extras_handler.rb +56 -0
- data/lib/puppet-strings/yard/handlers/ruby/type_handler.rb +9 -115
- data/lib/puppet-strings/yard/parsers/json/parser.rb +4 -2
- data/lib/puppet-strings/yard/parsers/puppet/parser.rb +14 -7
- data/lib/puppet-strings/yard/parsers/puppet/statement.rb +25 -0
- data/lib/puppet-strings/yard/tags.rb +2 -0
- data/lib/puppet-strings/yard/tags/enum_tag.rb +12 -0
- data/lib/puppet-strings/yard/tags/factory.rb +16 -0
- data/lib/puppet-strings/yard/tags/overload_tag.rb +2 -2
- data/lib/puppet-strings/yard/templates/default/fulldoc/html/full_list_puppet_data_type.erb +10 -0
- data/lib/puppet-strings/yard/templates/default/fulldoc/html/setup.rb +9 -0
- data/lib/puppet-strings/yard/templates/default/layout/html/objects.erb +2 -0
- data/lib/puppet-strings/yard/templates/default/layout/html/setup.rb +18 -1
- data/lib/puppet-strings/yard/templates/default/puppet_data_type/html/box_info.erb +10 -0
- data/lib/puppet-strings/yard/templates/default/puppet_data_type/html/header.erb +1 -0
- data/lib/puppet-strings/yard/templates/default/puppet_data_type/html/method_details_list.erb +6 -0
- data/lib/puppet-strings/yard/templates/default/puppet_data_type/html/note.erb +6 -0
- data/lib/puppet-strings/yard/templates/default/puppet_data_type/html/overview.erb +6 -0
- data/lib/puppet-strings/yard/templates/default/puppet_data_type/html/setup.rb +13 -0
- data/lib/puppet-strings/yard/templates/default/puppet_data_type/html/source.erb +12 -0
- data/lib/puppet-strings/yard/templates/default/puppet_data_type/html/summary.erb +4 -0
- data/lib/puppet-strings/yard/templates/default/puppet_data_type/html/todo.erb +6 -0
- data/lib/puppet-strings/yard/templates/default/puppet_data_type_alias/html/alias_of.erb +10 -0
- data/lib/puppet-strings/yard/templates/default/puppet_data_type_alias/html/box_info.erb +10 -0
- data/lib/puppet-strings/yard/templates/default/puppet_data_type_alias/html/header.erb +1 -0
- data/lib/puppet-strings/yard/templates/default/puppet_data_type_alias/html/note.erb +6 -0
- data/lib/puppet-strings/yard/templates/default/puppet_data_type_alias/html/overview.erb +6 -0
- data/lib/puppet-strings/yard/templates/default/puppet_data_type_alias/html/setup.rb +17 -0
- data/lib/puppet-strings/yard/templates/default/puppet_data_type_alias/html/source.erb +12 -0
- data/lib/puppet-strings/yard/templates/default/puppet_data_type_alias/html/summary.erb +4 -0
- data/lib/puppet-strings/yard/templates/default/puppet_data_type_alias/html/todo.erb +6 -0
- data/lib/puppet-strings/yard/templates/default/puppet_type/html/setup.rb +3 -1
- data/lib/puppet-strings/yard/templates/default/tags/html/enum.erb +17 -0
- data/lib/puppet-strings/yard/templates/default/tags/setup.rb +7 -0
- data/lib/puppet-strings/yard/util.rb +48 -0
- data/lib/puppet/face/strings.rb +68 -3
- metadata +36 -45
- data/Gemfile +0 -37
- data/HISTORY.md +0 -218
- data/JSON.md +0 -802
- data/Rakefile +0 -93
- data/codecov.yml +0 -3
- data/misc/ANNOUNCEMENT_TEMPLATE.md +0 -40
- data/spec/acceptance/emit_json_options.rb +0 -71
- data/spec/acceptance/generate_markdown_spec.rb +0 -49
- data/spec/acceptance/lib/util.rb +0 -163
- data/spec/acceptance/running_strings_generate.rb +0 -54
- data/spec/fixtures/acceptance/modules/test/functions/add.pp +0 -9
- data/spec/fixtures/acceptance/modules/test/lib/puppet/functions/4x_function.rb +0 -5
- data/spec/fixtures/acceptance/modules/test/lib/puppet/parser/functions/function3x.rb +0 -2
- data/spec/fixtures/acceptance/modules/test/lib/puppet/provider/server/linux.rb +0 -9
- data/spec/fixtures/acceptance/modules/test/lib/puppet/type/database.rb +0 -15
- data/spec/fixtures/acceptance/modules/test/manifests/init.pp +0 -27
- data/spec/fixtures/acceptance/modules/test/manifests/triple_nested_classes.pp +0 -27
- data/spec/fixtures/acceptance/modules/test/metadata.json +0 -6
- data/spec/fixtures/unit/json/output.json +0 -660
- data/spec/fixtures/unit/json/output_with_plan.json +0 -697
- data/spec/fixtures/unit/json/output_without_puppet_function.json +0 -480
- data/spec/fixtures/unit/markdown/output.md +0 -444
- data/spec/fixtures/unit/markdown/output_with_plan.md +0 -478
- data/spec/spec_helper.rb +0 -45
- data/spec/spec_helper_acceptance.rb +0 -28
- data/spec/unit/puppet-strings/json_spec.rb +0 -229
- data/spec/unit/puppet-strings/markdown/base_spec.rb +0 -146
- data/spec/unit/puppet-strings/markdown_spec.rb +0 -283
- data/spec/unit/puppet-strings/yard/code_objects/task_spec.rb +0 -92
- data/spec/unit/puppet-strings/yard/handlers/json/task_handler_spec.rb +0 -124
- data/spec/unit/puppet-strings/yard/handlers/puppet/class_handler_spec.rb +0 -217
- data/spec/unit/puppet-strings/yard/handlers/puppet/defined_type_handler_spec.rb +0 -231
- data/spec/unit/puppet-strings/yard/handlers/puppet/function_handler_spec.rb +0 -315
- data/spec/unit/puppet-strings/yard/handlers/ruby/function_handler_spec.rb +0 -729
- data/spec/unit/puppet-strings/yard/handlers/ruby/provider_handler_spec.rb +0 -139
- data/spec/unit/puppet-strings/yard/handlers/ruby/rsapi_handler_spec.rb +0 -214
- data/spec/unit/puppet-strings/yard/handlers/ruby/type_handler_spec.rb +0 -269
- data/spec/unit/puppet-strings/yard/parsers/json/parser_spec.rb +0 -70
- data/spec/unit/puppet-strings/yard/parsers/json/task_statement_spec.rb +0 -56
- data/spec/unit/puppet-strings/yard/parsers/puppet/parser_spec.rb +0 -209
- data/spec/unit/puppet-strings/yard/util_spec.rb +0 -48
|
@@ -1,13 +1,16 @@
|
|
|
1
|
-
###
|
|
1
|
+
### `<%= name %>`
|
|
2
2
|
|
|
3
3
|
Type: <%= type %>
|
|
4
4
|
|
|
5
5
|
<% if text -%>
|
|
6
6
|
<%= text %>
|
|
7
|
+
|
|
7
8
|
<% elsif summary -%>
|
|
8
9
|
<%= summary %>
|
|
10
|
+
|
|
9
11
|
<% else -%>
|
|
10
12
|
<%= "The #{name} function." %>
|
|
13
|
+
|
|
11
14
|
<% end -%>
|
|
12
15
|
<% if todo -%>
|
|
13
16
|
* **TODO** <%= todo %>
|
|
@@ -17,7 +20,18 @@ Type: <%= type %>
|
|
|
17
20
|
* **Note** <%= note %>
|
|
18
21
|
|
|
19
22
|
<% end -%>
|
|
23
|
+
<% if examples -%>
|
|
24
|
+
#### Examples
|
|
25
|
+
|
|
26
|
+
<% examples.each do |eg| -%>
|
|
27
|
+
##### <%= eg[:name] %>
|
|
28
|
+
|
|
29
|
+
```puppet
|
|
30
|
+
<%= eg[:text] %>
|
|
31
|
+
```
|
|
20
32
|
|
|
33
|
+
<% end -%>
|
|
34
|
+
<% end -%>
|
|
21
35
|
<% signatures.each do |sig| -%>
|
|
22
36
|
#### `<%= sig.signature %>`
|
|
23
37
|
|
|
@@ -41,10 +55,23 @@ Returns: `<%= sig.return_type %>`<% if sig.return_val %> <%= sig.return_val %><%
|
|
|
41
55
|
<% end -%>
|
|
42
56
|
<% if raises -%>
|
|
43
57
|
Raises:
|
|
58
|
+
|
|
44
59
|
<% raises.each do |r| -%>
|
|
45
60
|
* <%= error_type(r[:text]) %> <%= error_text(r[:text]) %>
|
|
46
61
|
<% end -%>
|
|
47
62
|
|
|
63
|
+
<% end -%>
|
|
64
|
+
<% if sig.examples -%>
|
|
65
|
+
##### Examples
|
|
66
|
+
|
|
67
|
+
<% sig.examples.each do |eg| -%>
|
|
68
|
+
###### <%= eg[:name] %>
|
|
69
|
+
|
|
70
|
+
```puppet
|
|
71
|
+
<%= eg[:text] %>
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
<% end -%>
|
|
48
75
|
<% end -%>
|
|
49
76
|
<% if sig.params -%>
|
|
50
77
|
<% sig.params.each do |param| -%>
|
|
@@ -61,6 +88,14 @@ Options:
|
|
|
61
88
|
* **<%= o[:opt_name] %>** `<%= o[:opt_types][0] %>`: <%= o[:opt_text] %>
|
|
62
89
|
<% end -%>
|
|
63
90
|
|
|
91
|
+
<% end -%>
|
|
92
|
+
<% if sig.enums_for_param(param[:name]) -%>
|
|
93
|
+
Options:
|
|
94
|
+
|
|
95
|
+
<% sig.enums_for_param(param[:name]).each do |e| -%>
|
|
96
|
+
* **<%= e[:opt_name] %>**: <%= e[:opt_text] %>
|
|
97
|
+
<% end -%>
|
|
98
|
+
|
|
64
99
|
<% end -%>
|
|
65
100
|
<% end -%>
|
|
66
101
|
<% end -%>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
###
|
|
1
|
+
### `<%= name %>`
|
|
2
2
|
|
|
3
3
|
<% if text -%>
|
|
4
4
|
<%= text %>
|
|
@@ -24,10 +24,10 @@
|
|
|
24
24
|
* **See also**
|
|
25
25
|
<% see.each do |sa| -%>
|
|
26
26
|
<% if sa[:name] -%>
|
|
27
|
-
<%= sa[:name] %>
|
|
27
|
+
<%= " * #{sa[:name]}" %>
|
|
28
28
|
<% end -%>
|
|
29
29
|
<% if sa[:text] -%>
|
|
30
|
-
<%= sa[:text] %>
|
|
30
|
+
<%= " * #{sa[:text]}" %>
|
|
31
31
|
<% end -%>
|
|
32
32
|
<% end -%>
|
|
33
33
|
|
|
@@ -44,16 +44,16 @@
|
|
|
44
44
|
|
|
45
45
|
<% end -%>
|
|
46
46
|
<% end -%>
|
|
47
|
-
<% if
|
|
47
|
+
<% if properties_and_checks -%>
|
|
48
48
|
#### Properties
|
|
49
49
|
|
|
50
50
|
The following properties are available in the `<%= name %>` <%= @type %>.
|
|
51
51
|
|
|
52
|
-
<%
|
|
52
|
+
<% properties_and_checks.each do |prop| -%>
|
|
53
53
|
##### `<%= prop[:name] %>`
|
|
54
54
|
|
|
55
55
|
<% if prop[:values] -%>
|
|
56
|
-
Valid values:
|
|
56
|
+
Valid values: `<%= prop[:values].map { |value| value_string(value) }.join('`, `') %>`
|
|
57
57
|
|
|
58
58
|
<% end -%>
|
|
59
59
|
<% if prop[:isnamevar] -%>
|
|
@@ -61,7 +61,7 @@ namevar
|
|
|
61
61
|
|
|
62
62
|
<% end -%>
|
|
63
63
|
<% if prop[:aliases] -%>
|
|
64
|
-
Aliases:
|
|
64
|
+
Aliases: `<%= prop[:aliases].to_s.delete('{').delete('}') %>`
|
|
65
65
|
|
|
66
66
|
<% end -%>
|
|
67
67
|
<% if prop[:data_type] -%>
|
|
@@ -77,9 +77,17 @@ Options:
|
|
|
77
77
|
* **<%= o[:opt_name] %>** `<%= o[:opt_types][0] %>`: <%= o[:opt_text] %>
|
|
78
78
|
<% end -%>
|
|
79
79
|
|
|
80
|
+
<% end -%>
|
|
81
|
+
<% if enums_for_param(prop[:name]) -%>
|
|
82
|
+
Options:
|
|
83
|
+
|
|
84
|
+
<% enums_for_param(prop[:name]).each do |e| -%>
|
|
85
|
+
* **<%= e[:opt_name] %>**: <%= e[:opt_text] %>
|
|
86
|
+
<% end -%>
|
|
87
|
+
|
|
80
88
|
<% end -%>
|
|
81
89
|
<% if prop[:default] -%>
|
|
82
|
-
Default value:
|
|
90
|
+
Default value: `<%= prop[:default] %>`
|
|
83
91
|
|
|
84
92
|
<% end -%>
|
|
85
93
|
<% end -%>
|
|
@@ -93,7 +101,7 @@ The following parameters are available in the `<%= name %>` <%= @type %>.
|
|
|
93
101
|
##### `<%= param[:name] %>`
|
|
94
102
|
|
|
95
103
|
<% if param[:values] -%>
|
|
96
|
-
Valid values:
|
|
104
|
+
Valid values: `<%= param[:values].map { |value| value_string(value) }.join('`, `') %>`
|
|
97
105
|
|
|
98
106
|
<% end -%>
|
|
99
107
|
<% if param[:isnamevar] -%>
|
|
@@ -101,14 +109,14 @@ namevar
|
|
|
101
109
|
|
|
102
110
|
<% end -%>
|
|
103
111
|
<% if param[:aliases] -%>
|
|
104
|
-
Aliases:
|
|
112
|
+
Aliases: `<%= param[:aliases].to_s.delete('{').delete('}') %>`
|
|
105
113
|
|
|
106
114
|
<% end -%>
|
|
107
115
|
<% if param[:data_type] -%>
|
|
108
116
|
Data type: `<%= param[:data_type] %>`<%= "\n_\*this data type contains a regex that may not be accurately reflected in generated documentation_" if regex_in_data_type?(param[:data_type]) %>
|
|
109
117
|
|
|
110
118
|
<% end -%>
|
|
111
|
-
<%= param[:description] %>
|
|
119
|
+
<%= word_wrap(param[:description]) %>
|
|
112
120
|
|
|
113
121
|
<% if options_for_param(param[:name]) -%>
|
|
114
122
|
Options:
|
|
@@ -117,9 +125,21 @@ Options:
|
|
|
117
125
|
* **<%= o[:opt_name] %>** `<%= o[:opt_types][0] %>`: <%= o[:opt_text] %>
|
|
118
126
|
<% end -%>
|
|
119
127
|
|
|
128
|
+
<% end -%>
|
|
129
|
+
<% if enums_for_param(param[:name]) -%>
|
|
130
|
+
Options:
|
|
131
|
+
|
|
132
|
+
<% enums_for_param(param[:name]).each do |e| -%>
|
|
133
|
+
* **<%= e[:opt_name] %>**: <%= e[:opt_text] %>
|
|
134
|
+
<% end -%>
|
|
135
|
+
|
|
120
136
|
<% end -%>
|
|
121
137
|
<% if param[:default] -%>
|
|
122
|
-
Default value:
|
|
138
|
+
Default value: `<%= value_string(param[:default]) %>`
|
|
139
|
+
|
|
140
|
+
<% end -%>
|
|
141
|
+
<% if param[:required_features] -%>
|
|
142
|
+
Required features: <%= param[:required_features] %>.
|
|
123
143
|
|
|
124
144
|
<% end -%>
|
|
125
145
|
<% end -%>
|
|
@@ -1,25 +1,25 @@
|
|
|
1
1
|
<% if group.length > 0 -%>
|
|
2
|
-
|
|
2
|
+
### <%= group_name %>
|
|
3
3
|
|
|
4
4
|
<% if priv -%>
|
|
5
|
-
|
|
5
|
+
#### Public <%= group_name %>
|
|
6
6
|
|
|
7
7
|
<% group.each do |item| -%>
|
|
8
8
|
<% unless item[:private] -%>
|
|
9
|
-
* [`<%= item[:name] %>`](#<%= item[:link] %>): <%= item[:desc] %>
|
|
9
|
+
* [`<%= item[:name] %>`](#<%= item[:link] %>)<% unless item[:desc].nil? || item[:desc].empty? %>: <%= item[:desc] %><% end %>
|
|
10
10
|
<% end -%>
|
|
11
11
|
<% end -%>
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
#### Private <%= group_name %>
|
|
14
14
|
|
|
15
15
|
<% group.each do |item| -%>
|
|
16
16
|
<% if item[:private] -%>
|
|
17
|
-
* `<%= item[:name]
|
|
17
|
+
* `<%= item[:name] %>`<% unless item[:desc].nil? || item[:desc].empty? %>: <%= item[:desc] %><% end %>
|
|
18
18
|
<% end -%>
|
|
19
19
|
<% end -%>
|
|
20
20
|
<% else -%>
|
|
21
21
|
<% group.each do |item| -%>
|
|
22
|
-
* [`<%= item[:name] %>`](#<%= item[:link] %>): <%= item[:desc] %>
|
|
22
|
+
* [`<%= item[:name] %>`](#<%= item[:link] %>)<% unless item[:desc].nil? || item[:desc].empty? %>: <%= item[:desc] %><% end %>
|
|
23
23
|
<% end -%>
|
|
24
24
|
<% end -%>
|
|
25
25
|
|
|
@@ -33,13 +33,20 @@ namespace :strings do
|
|
|
33
33
|
end
|
|
34
34
|
end
|
|
35
35
|
end
|
|
36
|
+
# rubocop:enable Style/PreferredHashMethods
|
|
36
37
|
|
|
37
|
-
[
|
|
38
|
+
%i[json markdown].each { |format| parse_format_option(args, options, format) }
|
|
38
39
|
|
|
39
40
|
warn('yard_args behavior is a little dodgy, use at your own risk') if args[:yard_args]
|
|
40
|
-
options[:yard_args] = args[:yard_args].split if args.
|
|
41
|
+
options[:yard_args] = args[:yard_args].split if args.key? :yard_args
|
|
41
42
|
|
|
42
43
|
PuppetStrings.generate(patterns, options)
|
|
43
44
|
end
|
|
44
|
-
end
|
|
45
45
|
|
|
46
|
+
namespace :generate do
|
|
47
|
+
desc 'Generate Puppet Reference documentation.'
|
|
48
|
+
task :reference, [:patterns, :debug, :backtrace] do |t, args|
|
|
49
|
+
Rake::Task['strings:generate'].invoke(args[:patterns], args[:debug], args[:backtrace], nil, 'false', 'true')
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
data/lib/puppet-strings/yard.rb
CHANGED
|
@@ -11,6 +11,9 @@ module PuppetStrings::Yard
|
|
|
11
11
|
# Sets up YARD for use with puppet-strings.
|
|
12
12
|
# @return [void]
|
|
13
13
|
def self.setup!
|
|
14
|
+
# Register our factory
|
|
15
|
+
YARD::Tags::Library.default_factory = PuppetStrings::Yard::Tags::Factory
|
|
16
|
+
|
|
14
17
|
# Register the template path
|
|
15
18
|
YARD::Templates::Engine.register_template_path(File.join(File.dirname(__FILE__), 'yard', 'templates'))
|
|
16
19
|
|
|
@@ -30,6 +33,9 @@ module PuppetStrings::Yard
|
|
|
30
33
|
# Register the summary tag
|
|
31
34
|
PuppetStrings::Yard::Tags::SummaryTag.register!
|
|
32
35
|
|
|
36
|
+
# Register the enum tag
|
|
37
|
+
PuppetStrings::Yard::Tags::EnumTag.register!
|
|
38
|
+
|
|
33
39
|
# Ignore documentation on Puppet DSL calls
|
|
34
40
|
# This prevents the YARD DSL parser from emitting warnings for Puppet's Ruby DSL
|
|
35
41
|
YARD::Handlers::Ruby::DSLHandlerMethods::IGNORE_METHODS['create_function'] = true
|
|
@@ -46,6 +52,8 @@ class YARD::CLI::Yardoc
|
|
|
46
52
|
:module,
|
|
47
53
|
:class,
|
|
48
54
|
:puppet_class,
|
|
55
|
+
:puppet_data_type,
|
|
56
|
+
:puppet_data_type_alias,
|
|
49
57
|
:puppet_defined_type,
|
|
50
58
|
:puppet_type,
|
|
51
59
|
:puppet_provider,
|
|
@@ -64,6 +72,14 @@ class YARD::CLI::Stats
|
|
|
64
72
|
output 'Puppet Classes', *type_statistics_all(:puppet_class)
|
|
65
73
|
end
|
|
66
74
|
|
|
75
|
+
def stats_for_puppet_data_types
|
|
76
|
+
output 'Puppet Data Types', *type_statistics_all(:puppet_data_type)
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
def stats_for_puppet_data_type_aliases
|
|
80
|
+
output 'Puppet Data Type Aliases', *type_statistics_all(:puppet_data_type_alias)
|
|
81
|
+
end
|
|
82
|
+
|
|
67
83
|
def stats_for_puppet_defined_types
|
|
68
84
|
output 'Puppet Defined Types', *type_statistics_all(:puppet_defined_type)
|
|
69
85
|
end
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
# The module for custom YARD code objects.
|
|
2
2
|
module PuppetStrings::Yard::CodeObjects
|
|
3
3
|
require 'puppet-strings/yard/code_objects/class'
|
|
4
|
+
require 'puppet-strings/yard/code_objects/data_type'
|
|
5
|
+
require 'puppet-strings/yard/code_objects/data_type_alias'
|
|
4
6
|
require 'puppet-strings/yard/code_objects/defined_type'
|
|
5
7
|
require 'puppet-strings/yard/code_objects/type'
|
|
6
8
|
require 'puppet-strings/yard/code_objects/provider'
|
|
@@ -50,8 +50,8 @@ class PuppetStrings::Yard::CodeObjects::Class < PuppetStrings::Yard::CodeObjects
|
|
|
50
50
|
hash[:file] = file
|
|
51
51
|
hash[:line] = line
|
|
52
52
|
hash[:inherits] = statement.parent_class if statement.parent_class
|
|
53
|
-
hash[:docstring] = PuppetStrings::
|
|
54
|
-
defaults = Hash[*parameters.
|
|
53
|
+
hash[:docstring] = PuppetStrings::Yard::Util.docstring_to_hash(docstring)
|
|
54
|
+
defaults = Hash[*parameters.reject{ |p| p[1].nil? }.flatten]
|
|
55
55
|
hash[:defaults] = defaults unless defaults.empty?
|
|
56
56
|
hash[:source] = source unless source && source.empty?
|
|
57
57
|
hash
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
require 'puppet-strings/yard/code_objects/group'
|
|
2
|
+
require 'puppet-strings/yard/util'
|
|
3
|
+
|
|
4
|
+
# Implements the group for Puppet DataTypes.
|
|
5
|
+
class PuppetStrings::Yard::CodeObjects::DataTypes < PuppetStrings::Yard::CodeObjects::Group
|
|
6
|
+
# Gets the singleton instance of the group.
|
|
7
|
+
# @return Returns the singleton instance of the group.
|
|
8
|
+
def self.instance
|
|
9
|
+
super(:puppet_data_types)
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
# Gets the display name of the group.
|
|
13
|
+
# @param [Boolean] prefix whether to show a prefix. Ignored for Puppet group namespaces.
|
|
14
|
+
# @return [String] Returns the display name of the group.
|
|
15
|
+
def name(prefix = false)
|
|
16
|
+
'Puppet Data Types'
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
# Implements the Puppet DataType code object.
|
|
21
|
+
class PuppetStrings::Yard::CodeObjects::DataType < PuppetStrings::Yard::CodeObjects::Base
|
|
22
|
+
# Initializes a Puppet class code object.
|
|
23
|
+
# @param [String] The name of the Data Type
|
|
24
|
+
# @return [void]
|
|
25
|
+
def initialize(name)
|
|
26
|
+
super(PuppetStrings::Yard::CodeObjects::DataTypes.instance, name)
|
|
27
|
+
@defaults = {}
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
# Gets the type of the code object.
|
|
31
|
+
# @return Returns the type of the code object.
|
|
32
|
+
def type
|
|
33
|
+
:puppet_data_type
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
# Gets the source of the code object.
|
|
37
|
+
# @return Returns the source of the code object.
|
|
38
|
+
def source
|
|
39
|
+
# Not implemented, but would be nice!
|
|
40
|
+
nil
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def add_parameter(name, type, default)
|
|
44
|
+
tag = docstring.tags(:param).find { |item| item.name == name }
|
|
45
|
+
if tag.nil?
|
|
46
|
+
tag = YARD::Tags::Tag.new(:param, '', nil, name)
|
|
47
|
+
docstring.add_tag(tag)
|
|
48
|
+
end
|
|
49
|
+
type = [type] unless type.is_a?(Array)
|
|
50
|
+
tag.types = type if tag.types.nil?
|
|
51
|
+
set_parameter_default(name, default)
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def set_parameter_default(param_name, default)
|
|
55
|
+
defaults.delete(param_name)
|
|
56
|
+
defaults[param_name] = default unless default.nil?
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
def parameters
|
|
60
|
+
docstring.tags(:param).map { |tag| [tag.name, defaults[tag.name]] }
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
def add_function(name, return_type, parameter_types)
|
|
64
|
+
meth_obj = YARD::CodeObjects::MethodObject.new(self, name, :class)
|
|
65
|
+
|
|
66
|
+
# Add return tag
|
|
67
|
+
meth_obj.add_tag(YARD::Tags::Tag.new(:return, '', return_type))
|
|
68
|
+
|
|
69
|
+
# Add parameters
|
|
70
|
+
parameter_types.each_with_index do |param_type, index|
|
|
71
|
+
meth_obj.add_tag(YARD::Tags::Tag.new(:param, '', [param_type], "param#{index + 1}"))
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
self.meths << meth_obj
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
def functions
|
|
78
|
+
meths
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
# Converts the code object to a hash representation.
|
|
82
|
+
# @return [Hash] Returns a hash representation of the code object.
|
|
83
|
+
def to_hash
|
|
84
|
+
hash = {}
|
|
85
|
+
hash[:name] = name
|
|
86
|
+
hash[:file] = file
|
|
87
|
+
hash[:line] = line
|
|
88
|
+
hash[:docstring] = PuppetStrings::Yard::Util.docstring_to_hash(docstring, %i[param option enum return example])
|
|
89
|
+
hash[:defaults] = defaults unless defaults.empty?
|
|
90
|
+
hash[:source] = source unless source && source.empty?
|
|
91
|
+
hash[:functions] = functions.map do |func|
|
|
92
|
+
{
|
|
93
|
+
name: func.name,
|
|
94
|
+
signature: func.signature,
|
|
95
|
+
docstring: PuppetStrings::Yard::Util.docstring_to_hash(func.docstring, %i[param option enum return example])
|
|
96
|
+
}
|
|
97
|
+
end
|
|
98
|
+
hash
|
|
99
|
+
end
|
|
100
|
+
end
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
require 'puppet-strings/yard/code_objects/group'
|
|
2
|
+
require 'puppet-strings/yard/util'
|
|
3
|
+
|
|
4
|
+
# Implements the group for Puppet DataTypeAliases.
|
|
5
|
+
class PuppetStrings::Yard::CodeObjects::DataTypeAliases < PuppetStrings::Yard::CodeObjects::Group
|
|
6
|
+
# Gets the singleton instance of the group.
|
|
7
|
+
# @return Returns the singleton instance of the group.
|
|
8
|
+
def self.instance
|
|
9
|
+
super(:puppet_data_type_aliases)
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
# Gets the display name of the group.
|
|
13
|
+
# @param [Boolean] prefix whether to show a prefix. Ignored for Puppet group namespaces.
|
|
14
|
+
# @return [String] Returns the display name of the group.
|
|
15
|
+
def name(prefix = false)
|
|
16
|
+
'Puppet Data Type Aliases'
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
# Implements the Puppet DataTypeAlias code object.
|
|
21
|
+
class PuppetStrings::Yard::CodeObjects::DataTypeAlias < PuppetStrings::Yard::CodeObjects::Base
|
|
22
|
+
attr_reader :statement
|
|
23
|
+
attr_accessor :alias_of
|
|
24
|
+
|
|
25
|
+
# Initializes a Puppet data type alias code object.
|
|
26
|
+
# @param [PuppetStrings::Parsers::DataTypeAliasStatement] statement The data type alias statement that was parsed.
|
|
27
|
+
# @return [void]
|
|
28
|
+
def initialize(statement)
|
|
29
|
+
@statement = statement
|
|
30
|
+
@alias_of = statement.alias_of
|
|
31
|
+
super(PuppetStrings::Yard::CodeObjects::DataTypeAliases.instance, statement.name)
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
# Gets the type of the code object.
|
|
35
|
+
# @return Returns the type of the code object.
|
|
36
|
+
def type
|
|
37
|
+
:puppet_data_type_alias
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
# Gets the source of the code object.
|
|
41
|
+
# @return Returns the source of the code object.
|
|
42
|
+
def source
|
|
43
|
+
# Not implemented, but would be nice!
|
|
44
|
+
nil
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
# Converts the code object to a hash representation.
|
|
48
|
+
# @return [Hash] Returns a hash representation of the code object.
|
|
49
|
+
def to_hash
|
|
50
|
+
hash = {}
|
|
51
|
+
hash[:name] = name
|
|
52
|
+
hash[:file] = file
|
|
53
|
+
hash[:line] = line
|
|
54
|
+
hash[:docstring] = PuppetStrings::Yard::Util.docstring_to_hash(docstring)
|
|
55
|
+
hash[:alias_of] = alias_of
|
|
56
|
+
hash
|
|
57
|
+
end
|
|
58
|
+
end
|