puppet-strings 2.4.0 → 2.8.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +97 -5
- data/COMMITTERS.md +17 -17
- data/CONTRIBUTING.md +6 -6
- data/README.md +10 -10
- data/lib/puppet-strings.rb +4 -2
- data/lib/puppet-strings/describe.rb +2 -0
- data/lib/puppet-strings/json.rb +2 -0
- data/lib/puppet-strings/markdown.rb +12 -10
- data/lib/puppet-strings/markdown/base.rb +17 -3
- data/lib/puppet-strings/markdown/data_type.rb +18 -0
- data/lib/puppet-strings/markdown/data_types.rb +3 -1
- data/lib/puppet-strings/markdown/defined_type.rb +2 -0
- data/lib/puppet-strings/markdown/defined_types.rb +3 -1
- data/lib/puppet-strings/markdown/function.rb +9 -7
- data/lib/puppet-strings/markdown/functions.rb +3 -1
- data/lib/puppet-strings/markdown/puppet_class.rb +2 -0
- data/lib/puppet-strings/markdown/puppet_classes.rb +3 -1
- data/lib/puppet-strings/markdown/puppet_plan.rb +2 -0
- data/lib/puppet-strings/markdown/puppet_plans.rb +3 -1
- data/lib/puppet-strings/markdown/puppet_task.rb +2 -0
- data/lib/puppet-strings/markdown/puppet_tasks.rb +3 -1
- data/lib/puppet-strings/markdown/resource_type.rb +21 -2
- data/lib/puppet-strings/markdown/resource_types.rb +3 -1
- data/lib/puppet-strings/markdown/table_of_contents.rb +3 -1
- data/lib/puppet-strings/markdown/templates/classes_and_defines.erb +10 -6
- data/lib/puppet-strings/markdown/templates/data_type.erb +22 -7
- data/lib/puppet-strings/markdown/templates/data_type_function.erb +67 -0
- data/lib/puppet-strings/markdown/templates/function.erb +2 -1
- data/lib/puppet-strings/markdown/templates/puppet_task.erb +1 -1
- data/lib/puppet-strings/markdown/templates/resource_type.erb +19 -13
- data/lib/puppet-strings/markdown/templates/table_of_contents.erb +6 -6
- data/lib/puppet-strings/monkey_patches/display_object_command.rb +2 -0
- data/lib/puppet-strings/tasks.rb +2 -0
- data/lib/puppet-strings/tasks/generate.rb +2 -0
- data/lib/puppet-strings/tasks/gh_pages.rb +3 -0
- data/lib/puppet-strings/version.rb +3 -1
- data/lib/puppet-strings/yard.rb +3 -0
- data/lib/puppet-strings/yard/code_objects.rb +2 -0
- data/lib/puppet-strings/yard/code_objects/base.rb +2 -0
- data/lib/puppet-strings/yard/code_objects/class.rb +4 -2
- data/lib/puppet-strings/yard/code_objects/data_type.rb +30 -8
- data/lib/puppet-strings/yard/code_objects/data_type_alias.rb +2 -0
- data/lib/puppet-strings/yard/code_objects/defined_type.rb +4 -2
- data/lib/puppet-strings/yard/code_objects/function.rb +6 -3
- data/lib/puppet-strings/yard/code_objects/group.rb +3 -0
- data/lib/puppet-strings/yard/code_objects/plan.rb +4 -2
- data/lib/puppet-strings/yard/code_objects/provider.rb +6 -0
- data/lib/puppet-strings/yard/code_objects/task.rb +2 -0
- data/lib/puppet-strings/yard/code_objects/type.rb +50 -5
- data/lib/puppet-strings/yard/handlers.rb +2 -0
- data/lib/puppet-strings/yard/handlers/helpers.rb +2 -0
- data/lib/puppet-strings/yard/handlers/json/base.rb +2 -0
- data/lib/puppet-strings/yard/handlers/json/task_handler.rb +2 -0
- data/lib/puppet-strings/yard/handlers/puppet/base.rb +3 -0
- data/lib/puppet-strings/yard/handlers/puppet/class_handler.rb +2 -0
- data/lib/puppet-strings/yard/handlers/puppet/data_type_alias_handler.rb +2 -0
- data/lib/puppet-strings/yard/handlers/puppet/defined_type_handler.rb +2 -0
- data/lib/puppet-strings/yard/handlers/puppet/function_handler.rb +3 -1
- data/lib/puppet-strings/yard/handlers/puppet/plan_handler.rb +2 -0
- data/lib/puppet-strings/yard/handlers/ruby/base.rb +5 -0
- data/lib/puppet-strings/yard/handlers/ruby/data_type_handler.rb +223 -60
- data/lib/puppet-strings/yard/handlers/ruby/function_handler.rb +9 -7
- data/lib/puppet-strings/yard/handlers/ruby/provider_handler.rb +13 -0
- data/lib/puppet-strings/yard/handlers/ruby/rsapi_handler.rb +4 -1
- data/lib/puppet-strings/yard/handlers/ruby/type_base.rb +20 -6
- data/lib/puppet-strings/yard/handlers/ruby/type_extras_handler.rb +16 -6
- data/lib/puppet-strings/yard/handlers/ruby/type_handler.rb +18 -1
- data/lib/puppet-strings/yard/parsers.rb +2 -0
- data/lib/puppet-strings/yard/parsers/json/parser.rb +2 -0
- data/lib/puppet-strings/yard/parsers/json/task_statement.rb +2 -0
- data/lib/puppet-strings/yard/parsers/puppet/parser.rb +18 -14
- data/lib/puppet-strings/yard/parsers/puppet/statement.rb +4 -0
- data/lib/puppet-strings/yard/tags.rb +2 -0
- data/lib/puppet-strings/yard/tags/enum_tag.rb +2 -0
- data/lib/puppet-strings/yard/tags/factory.rb +2 -0
- data/lib/puppet-strings/yard/tags/overload_tag.rb +4 -1
- data/lib/puppet-strings/yard/tags/parameter_directive.rb +5 -4
- data/lib/puppet-strings/yard/tags/property_directive.rb +5 -4
- data/lib/puppet-strings/yard/tags/summary_tag.rb +2 -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/setup.rb +9 -1
- data/lib/puppet-strings/yard/templates/default/puppet_function/html/setup.rb +1 -1
- data/lib/puppet-strings/yard/templates/default/puppet_type/html/setup.rb +3 -1
- data/lib/puppet-strings/yard/util.rb +4 -1
- data/lib/puppet/application/strings.rb +2 -0
- data/lib/puppet/face/strings.rb +4 -1
- data/lib/puppet/feature/rgen.rb +2 -0
- data/lib/puppet/feature/yard.rb +2 -0
- metadata +11 -52
- data/CODEOWNERS +0 -1
- data/Gemfile +0 -53
- data/HISTORY.md +0 -218
- data/JSON.md +0 -832
- data/Rakefile +0 -160
- data/codecov.yml +0 -3
- data/misc/ANNOUNCEMENT_TEMPLATE.md +0 -40
- data/spec/acceptance/emit_json_options_spec.rb +0 -69
- data/spec/acceptance/generate_markdown_spec.rb +0 -47
- data/spec/acceptance/running_strings_generate_spec.rb +0 -88
- 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 -31
- data/spec/fixtures/acceptance/modules/test/manifests/triple_nested_classes.pp +0 -27
- data/spec/fixtures/acceptance/modules/test/metadata.json +0 -10
- data/spec/fixtures/acceptance/modules/test/types/elephant.pp +0 -2
- data/spec/fixtures/unit/markdown/output.md +0 -561
- data/spec/fixtures/unit/markdown/output_with_data_types.md +0 -606
- data/spec/fixtures/unit/markdown/output_with_plan.md +0 -595
- data/spec/spec_helper.rb +0 -49
- data/spec/spec_helper_acceptance.rb +0 -58
- data/spec/spec_helper_acceptance_local.rb +0 -10
- data/spec/unit/puppet-strings/describe_spec.rb +0 -141
- data/spec/unit/puppet-strings/json_spec.rb +0 -302
- data/spec/unit/puppet-strings/markdown/base_spec.rb +0 -146
- data/spec/unit/puppet-strings/markdown_spec.rb +0 -374
- 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 -116
- data/spec/unit/puppet-strings/yard/handlers/puppet/class_handler_spec.rb +0 -217
- data/spec/unit/puppet-strings/yard/handlers/puppet/data_type_alias_handler_spec.rb +0 -65
- 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/data_type_handler_spec.rb +0 -309
- data/spec/unit/puppet-strings/yard/handlers/ruby/function_handler_spec.rb +0 -746
- data/spec/unit/puppet-strings/yard/handlers/ruby/provider_handler_spec.rb +0 -158
- data/spec/unit/puppet-strings/yard/handlers/ruby/rsapi_handler_spec.rb +0 -235
- data/spec/unit/puppet-strings/yard/handlers/ruby/type_handler_spec.rb +0 -311
- data/spec/unit/puppet-strings/yard/parsers/json/parser_spec.rb +0 -72
- 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 -251
- data/spec/unit/puppet-strings/yard/util_spec.rb +0 -48
@@ -1,4 +1,4 @@
|
|
1
|
-
### <%= name
|
1
|
+
### <a name="<%= link %>"></a>`<%= 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] -%>
|
@@ -87,7 +87,7 @@ Options:
|
|
87
87
|
|
88
88
|
<% end -%>
|
89
89
|
<% if prop[:default] -%>
|
90
|
-
Default value:
|
90
|
+
Default value: `<%= prop[:default] %>`
|
91
91
|
|
92
92
|
<% end -%>
|
93
93
|
<% end -%>
|
@@ -98,10 +98,14 @@ Default value: <%= prop[:default] %>
|
|
98
98
|
The following parameters are available in the `<%= name %>` <%= @type %>.
|
99
99
|
|
100
100
|
<% parameters.each do |param| -%>
|
101
|
-
|
101
|
+
* [`<%= param[:name] %>`](#<%= param[:name] %>)
|
102
|
+
<% end -%>
|
103
|
+
|
104
|
+
<% parameters.each do |param| -%>
|
105
|
+
##### <a name="<%= param[:name] %>"></a>`<%= param[:name] %>`
|
102
106
|
|
103
107
|
<% if param[:values] -%>
|
104
|
-
Valid values:
|
108
|
+
Valid values: `<%= param[:values].map { |value| value_string(value) }.join('`, `') %>`
|
105
109
|
|
106
110
|
<% end -%>
|
107
111
|
<% if param[:isnamevar] -%>
|
@@ -109,14 +113,16 @@ namevar
|
|
109
113
|
|
110
114
|
<% end -%>
|
111
115
|
<% if param[:aliases] -%>
|
112
|
-
Aliases:
|
116
|
+
Aliases: `<%= param[:aliases].to_s.delete('{').delete('}') %>`
|
113
117
|
|
114
118
|
<% end -%>
|
115
119
|
<% if param[:data_type] -%>
|
116
120
|
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]) %>
|
117
121
|
|
118
122
|
<% end -%>
|
119
|
-
|
123
|
+
<% if param[:description] -%>
|
124
|
+
<%= word_wrap(param[:description]) %>
|
125
|
+
<% end -%>
|
120
126
|
|
121
127
|
<% if options_for_param(param[:name]) -%>
|
122
128
|
Options:
|
@@ -135,7 +141,7 @@ Options:
|
|
135
141
|
|
136
142
|
<% end -%>
|
137
143
|
<% if param[:default] -%>
|
138
|
-
Default value:
|
144
|
+
Default value: `<%= value_string(param[:default]) %>`
|
139
145
|
|
140
146
|
<% end -%>
|
141
147
|
<% if param[:required_features] -%>
|
@@ -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
|
|
data/lib/puppet-strings/tasks.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'puppet-strings/tasks'
|
2
4
|
|
3
5
|
namespace :strings do
|
@@ -5,6 +7,7 @@ namespace :strings do
|
|
5
7
|
task :checkout do
|
6
8
|
if Dir.exist?('doc')
|
7
9
|
fail "The 'doc' directory (#{File.expand_path('doc')}) is not a Git repository! Remove it and run the Rake task again." unless Dir.exist?('doc/.git')
|
10
|
+
|
8
11
|
Dir.chdir('doc') do
|
9
12
|
system 'git checkout gh-pages'
|
10
13
|
system 'git pull --rebase origin gh-pages'
|
data/lib/puppet-strings/yard.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'yard'
|
2
4
|
|
3
5
|
# Module for YARD related functionality.
|
@@ -102,6 +104,7 @@ class YARD::CLI::Stats
|
|
102
104
|
|
103
105
|
def stats_for_puppet_plans
|
104
106
|
return unless PuppetStrings.puppet_5?
|
107
|
+
|
105
108
|
output 'Puppet Plans', *type_statistics_all(:puppet_plan)
|
106
109
|
end
|
107
110
|
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'puppet-strings/yard/code_objects/group'
|
2
4
|
|
3
5
|
# Implements the group for Puppet classes.
|
@@ -52,8 +54,8 @@ class PuppetStrings::Yard::CodeObjects::Class < PuppetStrings::Yard::CodeObjects
|
|
52
54
|
hash[:inherits] = statement.parent_class if statement.parent_class
|
53
55
|
hash[:docstring] = PuppetStrings::Yard::Util.docstring_to_hash(docstring)
|
54
56
|
defaults = Hash[*parameters.reject{ |p| p[1].nil? }.flatten]
|
55
|
-
hash[:defaults] = defaults unless defaults.empty?
|
56
|
-
hash[:source] = source unless source
|
57
|
+
hash[:defaults] = defaults unless defaults.nil? || defaults.empty?
|
58
|
+
hash[:source] = source unless source.nil? || source.empty?
|
57
59
|
hash
|
58
60
|
end
|
59
61
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'puppet-strings/yard/code_objects/group'
|
2
4
|
require 'puppet-strings/yard/util'
|
3
5
|
|
@@ -24,7 +26,6 @@ class PuppetStrings::Yard::CodeObjects::DataType < PuppetStrings::Yard::CodeObje
|
|
24
26
|
# @return [void]
|
25
27
|
def initialize(name)
|
26
28
|
super(PuppetStrings::Yard::CodeObjects::DataTypes.instance, name)
|
27
|
-
@parameters = []
|
28
29
|
@defaults = {}
|
29
30
|
end
|
30
31
|
|
@@ -41,10 +42,6 @@ class PuppetStrings::Yard::CodeObjects::DataType < PuppetStrings::Yard::CodeObje
|
|
41
42
|
nil
|
42
43
|
end
|
43
44
|
|
44
|
-
def parameter_exist?(name)
|
45
|
-
!docstring.tags(:param).find { |item| item.name == name }.nil?
|
46
|
-
end
|
47
|
-
|
48
45
|
def add_parameter(name, type, default)
|
49
46
|
tag = docstring.tags(:param).find { |item| item.name == name }
|
50
47
|
if tag.nil?
|
@@ -65,6 +62,24 @@ class PuppetStrings::Yard::CodeObjects::DataType < PuppetStrings::Yard::CodeObje
|
|
65
62
|
docstring.tags(:param).map { |tag| [tag.name, defaults[tag.name]] }
|
66
63
|
end
|
67
64
|
|
65
|
+
def add_function(name, return_type, parameter_types)
|
66
|
+
meth_obj = YARD::CodeObjects::MethodObject.new(self, name, :class)
|
67
|
+
|
68
|
+
# Add return tag
|
69
|
+
meth_obj.add_tag(YARD::Tags::Tag.new(:return, '', return_type))
|
70
|
+
|
71
|
+
# Add parameters
|
72
|
+
parameter_types.each_with_index do |param_type, index|
|
73
|
+
meth_obj.add_tag(YARD::Tags::Tag.new(:param, '', [param_type], "param#{index + 1}"))
|
74
|
+
end
|
75
|
+
|
76
|
+
self.meths << meth_obj
|
77
|
+
end
|
78
|
+
|
79
|
+
def functions
|
80
|
+
meths
|
81
|
+
end
|
82
|
+
|
68
83
|
# Converts the code object to a hash representation.
|
69
84
|
# @return [Hash] Returns a hash representation of the code object.
|
70
85
|
def to_hash
|
@@ -72,9 +87,16 @@ class PuppetStrings::Yard::CodeObjects::DataType < PuppetStrings::Yard::CodeObje
|
|
72
87
|
hash[:name] = name
|
73
88
|
hash[:file] = file
|
74
89
|
hash[:line] = line
|
75
|
-
hash[:docstring] = PuppetStrings::Yard::Util.docstring_to_hash(docstring)
|
76
|
-
hash[:defaults] = defaults unless defaults.empty?
|
77
|
-
hash[:source] = source unless source
|
90
|
+
hash[:docstring] = PuppetStrings::Yard::Util.docstring_to_hash(docstring, %i[param option enum return example])
|
91
|
+
hash[:defaults] = defaults unless defaults.nil? || defaults.empty?
|
92
|
+
hash[:source] = source unless source.nil? || source.empty?
|
93
|
+
hash[:functions] = functions.map do |func|
|
94
|
+
{
|
95
|
+
name: func.name,
|
96
|
+
signature: func.signature,
|
97
|
+
docstring: PuppetStrings::Yard::Util.docstring_to_hash(func.docstring, %i[param option enum return example])
|
98
|
+
}
|
99
|
+
end
|
78
100
|
hash
|
79
101
|
end
|
80
102
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'puppet-strings/yard/code_objects/group'
|
2
4
|
|
3
5
|
# Implements the group for Puppet defined types.
|
@@ -51,8 +53,8 @@ class PuppetStrings::Yard::CodeObjects::DefinedType < PuppetStrings::Yard::CodeO
|
|
51
53
|
hash[:line] = line
|
52
54
|
hash[:docstring] = PuppetStrings::Yard::Util.docstring_to_hash(docstring)
|
53
55
|
defaults = Hash[*parameters.reject{ |p| p[1].nil? }.flatten]
|
54
|
-
hash[:defaults] = defaults unless defaults.empty?
|
55
|
-
hash[:source] = source unless source
|
56
|
+
hash[:defaults] = defaults unless defaults.nil? || defaults.empty?
|
57
|
+
hash[:source] = source unless source.nil? || source.empty?
|
56
58
|
hash
|
57
59
|
end
|
58
60
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'puppet-strings/yard/code_objects/group'
|
2
4
|
|
3
5
|
# Implements the group for Puppet functions.
|
@@ -61,11 +63,12 @@ class PuppetStrings::Yard::CodeObjects::Function < PuppetStrings::Yard::CodeObje
|
|
61
63
|
# @return [String] Returns the Puppet signature of the function.
|
62
64
|
def signature
|
63
65
|
return '' if self.has_tag? :overload
|
66
|
+
|
64
67
|
tags = self.tags(:param)
|
65
68
|
args = @parameters.map do |parameter|
|
66
69
|
name, default = parameter
|
67
70
|
tag = tags.find { |t| t.name == name } if tags
|
68
|
-
type = tag
|
71
|
+
type = tag&.types ? "#{tag.type} " : 'Any '
|
69
72
|
prefix = "#{name[0]}" if name.start_with?('*', '&')
|
70
73
|
name = name[1..-1] if prefix
|
71
74
|
default = " = #{default}" if default
|
@@ -96,8 +99,8 @@ class PuppetStrings::Yard::CodeObjects::Function < PuppetStrings::Yard::CodeObje
|
|
96
99
|
|
97
100
|
hash[:docstring] = PuppetStrings::Yard::Util.docstring_to_hash(docstring)
|
98
101
|
defaults = Hash[*parameters.reject{ |p| p[1].nil? }.flatten]
|
99
|
-
hash[:defaults] = defaults unless defaults.empty?
|
100
|
-
hash[:source] = source unless source
|
102
|
+
hash[:defaults] = defaults unless defaults.nil? || defaults.empty?
|
103
|
+
hash[:source] = source unless source.nil? || source.empty?
|
101
104
|
hash
|
102
105
|
end
|
103
106
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'puppet-strings/yard/code_objects/base'
|
2
4
|
|
3
5
|
# Implements the base class for "groups".
|
@@ -10,6 +12,7 @@ class PuppetStrings::Yard::CodeObjects::Group < PuppetStrings::Yard::CodeObjects
|
|
10
12
|
def self.instance(key)
|
11
13
|
instance = P(:root, key)
|
12
14
|
return instance unless instance.is_a?(YARD::CodeObjects::Proxy)
|
15
|
+
|
13
16
|
instance = self.new(:root, key)
|
14
17
|
instance.visibility = :hidden
|
15
18
|
P(:root).children << instance
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'puppet-strings/yard/code_objects/group'
|
2
4
|
|
3
5
|
class PuppetStrings::Yard::CodeObjects::Plans < PuppetStrings::Yard::CodeObjects::Group
|
@@ -49,8 +51,8 @@ class PuppetStrings::Yard::CodeObjects::Plan < PuppetStrings::Yard::CodeObjects:
|
|
49
51
|
hash[:line] = line
|
50
52
|
hash[:docstring] = PuppetStrings::Yard::Util.docstring_to_hash(docstring)
|
51
53
|
defaults = Hash[*parameters.reject{ |p| p[1].nil? }.flatten]
|
52
|
-
hash[:defaults] = defaults unless defaults.empty?
|
53
|
-
hash[:source] = source unless source
|
54
|
+
hash[:defaults] = defaults unless defaults.nil? || defaults.empty?
|
55
|
+
hash[:source] = source unless source.nil? || source.empty?
|
54
56
|
hash
|
55
57
|
end
|
56
58
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'puppet-strings/yard/code_objects/group'
|
2
4
|
|
3
5
|
# Implements the group for Puppet providers.
|
@@ -42,6 +44,7 @@ class PuppetStrings::Yard::CodeObjects::Provider < PuppetStrings::Yard::CodeObje
|
|
42
44
|
# @return [void]
|
43
45
|
def add_confine(key, value)
|
44
46
|
return unless key && value
|
47
|
+
|
45
48
|
@confines ||= {}
|
46
49
|
@confines[key] = value
|
47
50
|
end
|
@@ -51,6 +54,7 @@ class PuppetStrings::Yard::CodeObjects::Provider < PuppetStrings::Yard::CodeObje
|
|
51
54
|
# @return [void]
|
52
55
|
def add_feature(feature)
|
53
56
|
return unless feature
|
57
|
+
|
54
58
|
@features ||= []
|
55
59
|
@features << feature
|
56
60
|
end
|
@@ -60,6 +64,7 @@ class PuppetStrings::Yard::CodeObjects::Provider < PuppetStrings::Yard::CodeObje
|
|
60
64
|
# @return [void]
|
61
65
|
def add_default(constraints)
|
62
66
|
return unless constraints
|
67
|
+
|
63
68
|
@defaults ||= []
|
64
69
|
@defaults << constraints
|
65
70
|
end
|
@@ -70,6 +75,7 @@ class PuppetStrings::Yard::CodeObjects::Provider < PuppetStrings::Yard::CodeObje
|
|
70
75
|
# @return [void]
|
71
76
|
def add_command(key, value)
|
72
77
|
return unless key && value
|
78
|
+
|
73
79
|
@commands ||= {}
|
74
80
|
@commands[key] = value
|
75
81
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'puppet-strings/yard/code_objects/group'
|
2
4
|
require 'puppet-strings/yard/util'
|
3
5
|
|
@@ -73,6 +75,9 @@ class PuppetStrings::Yard::CodeObjects::Type < PuppetStrings::Yard::CodeObjects:
|
|
73
75
|
class Property < Parameter
|
74
76
|
end
|
75
77
|
|
78
|
+
class Check < Parameter
|
79
|
+
end
|
80
|
+
|
76
81
|
# Represents a resource type feature.
|
77
82
|
class Feature
|
78
83
|
attr_reader :name, :docstring
|
@@ -95,7 +100,7 @@ class PuppetStrings::Yard::CodeObjects::Type < PuppetStrings::Yard::CodeObjects:
|
|
95
100
|
end
|
96
101
|
end
|
97
102
|
|
98
|
-
attr_reader :properties, :
|
103
|
+
attr_reader :properties, :features, :checks
|
99
104
|
|
100
105
|
# Initializes a new resource type.
|
101
106
|
# @param [String] name The resource type name.
|
@@ -134,17 +139,57 @@ class PuppetStrings::Yard::CodeObjects::Type < PuppetStrings::Yard::CodeObjects:
|
|
134
139
|
@features << feature
|
135
140
|
end
|
136
141
|
|
142
|
+
# Adds a check to the resource type.
|
143
|
+
# @param [PuppetStrings::Yard::CodeObjects::Type::Check] check The check to add.
|
144
|
+
# @return [void]
|
145
|
+
def add_check(check)
|
146
|
+
@checks ||= []
|
147
|
+
@checks << check
|
148
|
+
end
|
149
|
+
|
150
|
+
def parameters
|
151
|
+
# just return params if there are no providers
|
152
|
+
return @parameters if providers.empty?
|
153
|
+
|
154
|
+
# return existing params if we have already added provider
|
155
|
+
return @parameters if @parameters&.any? { |p| p.name == 'provider' }
|
156
|
+
|
157
|
+
provider_param = Parameter.new(
|
158
|
+
'provider',
|
159
|
+
"The specific backend to use for this `#{self.name.to_s}` resource. You will seldom need " + \
|
160
|
+
"to specify this --- Puppet will usually discover the appropriate provider for your platform."
|
161
|
+
)
|
162
|
+
|
163
|
+
@parameters ||= []
|
164
|
+
@parameters << provider_param
|
165
|
+
end
|
166
|
+
|
167
|
+
# Not sure if this is where this belongs or if providers should only be resolved at
|
168
|
+
# render-time. For now, this should re-resolve on every call.
|
169
|
+
# may be able to memoize this
|
170
|
+
def providers
|
171
|
+
providers = YARD::Registry.all("puppet_providers_#{name}".intern)
|
172
|
+
return providers if providers.empty?
|
173
|
+
|
174
|
+
providers.first.children
|
175
|
+
end
|
176
|
+
|
137
177
|
# Converts the code object to a hash representation.
|
138
178
|
# @return [Hash] Returns a hash representation of the code object.
|
139
179
|
def to_hash
|
140
180
|
hash = {}
|
181
|
+
|
141
182
|
hash[:name] = name
|
142
183
|
hash[:file] = file
|
143
184
|
hash[:line] = line
|
144
|
-
|
145
|
-
hash[:
|
146
|
-
hash[:
|
147
|
-
hash[:
|
185
|
+
|
186
|
+
hash[:docstring] = PuppetStrings::Yard::Util.docstring_to_hash(docstring)
|
187
|
+
hash[:properties] = properties.sort_by { |p| p.name }.map(&:to_hash) if properties && !properties.empty?
|
188
|
+
hash[:parameters] = parameters.sort_by { |p| p.name }.map(&:to_hash) if parameters && !parameters.empty?
|
189
|
+
hash[:checks] = checks.sort_by { |c| c.name }.map(&:to_hash) if checks && !checks.empty?
|
190
|
+
hash[:features] = features.sort_by { |f| f.name }.map(&:to_hash) if features && !features.empty?
|
191
|
+
hash[:providers] = providers.sort_by { |p| p.name }.map(&:to_hash) if providers && !providers.empty?
|
192
|
+
|
148
193
|
hash
|
149
194
|
end
|
150
195
|
end
|