openvox-strings 5.0.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 +7 -0
- data/CHANGELOG.md +407 -0
- data/LICENSE +177 -0
- data/README.md +116 -0
- data/lib/openvox-strings/describe.rb +75 -0
- data/lib/openvox-strings/json.rb +33 -0
- data/lib/openvox-strings/markdown/base.rb +236 -0
- data/lib/openvox-strings/markdown/data_type.rb +39 -0
- data/lib/openvox-strings/markdown/defined_type.rb +20 -0
- data/lib/openvox-strings/markdown/function.rb +59 -0
- data/lib/openvox-strings/markdown/helpers.rb +21 -0
- data/lib/openvox-strings/markdown/puppet_class.rb +20 -0
- data/lib/openvox-strings/markdown/puppet_plan.rb +20 -0
- data/lib/openvox-strings/markdown/puppet_task.rb +29 -0
- data/lib/openvox-strings/markdown/resource_type.rb +56 -0
- data/lib/openvox-strings/markdown/templates/classes_and_defines.erb +94 -0
- data/lib/openvox-strings/markdown/templates/data_type.erb +101 -0
- data/lib/openvox-strings/markdown/templates/data_type_function.erb +67 -0
- data/lib/openvox-strings/markdown/templates/function.erb +106 -0
- data/lib/openvox-strings/markdown/templates/puppet_task.erb +28 -0
- data/lib/openvox-strings/markdown/templates/resource_type.erb +156 -0
- data/lib/openvox-strings/markdown/templates/table_of_contents.erb +26 -0
- data/lib/openvox-strings/markdown.rb +81 -0
- data/lib/openvox-strings/monkey_patches/display_object_command.rb +16 -0
- data/lib/openvox-strings/tasks/generate.rb +54 -0
- data/lib/openvox-strings/tasks/gh_pages.rb +72 -0
- data/lib/openvox-strings/tasks/validate.rb +42 -0
- data/lib/openvox-strings/tasks.rb +14 -0
- data/lib/openvox-strings/version.rb +5 -0
- data/lib/openvox-strings/yard/code_objects/base.rb +16 -0
- data/lib/openvox-strings/yard/code_objects/class.rb +60 -0
- data/lib/openvox-strings/yard/code_objects/data_type.rb +102 -0
- data/lib/openvox-strings/yard/code_objects/data_type_alias.rb +60 -0
- data/lib/openvox-strings/yard/code_objects/defined_type.rb +59 -0
- data/lib/openvox-strings/yard/code_objects/function.rb +106 -0
- data/lib/openvox-strings/yard/code_objects/group.rb +33 -0
- data/lib/openvox-strings/yard/code_objects/plan.rb +59 -0
- data/lib/openvox-strings/yard/code_objects/provider.rb +98 -0
- data/lib/openvox-strings/yard/code_objects/task.rb +69 -0
- data/lib/openvox-strings/yard/code_objects/type.rb +196 -0
- data/lib/openvox-strings/yard/code_objects.rb +14 -0
- data/lib/openvox-strings/yard/handlers/helpers.rb +10 -0
- data/lib/openvox-strings/yard/handlers/json/base.rb +8 -0
- data/lib/openvox-strings/yard/handlers/json/task_handler.rb +34 -0
- data/lib/openvox-strings/yard/handlers/puppet/base.rb +52 -0
- data/lib/openvox-strings/yard/handlers/puppet/class_handler.rb +29 -0
- data/lib/openvox-strings/yard/handlers/puppet/data_type_alias_handler.rb +26 -0
- data/lib/openvox-strings/yard/handlers/puppet/defined_type_handler.rb +29 -0
- data/lib/openvox-strings/yard/handlers/puppet/function_handler.rb +54 -0
- data/lib/openvox-strings/yard/handlers/puppet/plan_handler.rb +29 -0
- data/lib/openvox-strings/yard/handlers/ruby/base.rb +55 -0
- data/lib/openvox-strings/yard/handlers/ruby/data_type_handler.rb +411 -0
- data/lib/openvox-strings/yard/handlers/ruby/function_handler.rb +386 -0
- data/lib/openvox-strings/yard/handlers/ruby/provider_handler.rb +127 -0
- data/lib/openvox-strings/yard/handlers/ruby/rsapi_handler.rb +157 -0
- data/lib/openvox-strings/yard/handlers/ruby/type_base.rb +146 -0
- data/lib/openvox-strings/yard/handlers/ruby/type_extras_handler.rb +65 -0
- data/lib/openvox-strings/yard/handlers/ruby/type_handler.rb +105 -0
- data/lib/openvox-strings/yard/handlers.rb +28 -0
- data/lib/openvox-strings/yard/parsers/json/parser.rb +38 -0
- data/lib/openvox-strings/yard/parsers/json/task_statement.rb +37 -0
- data/lib/openvox-strings/yard/parsers/puppet/parser.rb +89 -0
- data/lib/openvox-strings/yard/parsers/puppet/statement.rb +182 -0
- data/lib/openvox-strings/yard/parsers.rb +14 -0
- data/lib/openvox-strings/yard/tags/enum_tag.rb +13 -0
- data/lib/openvox-strings/yard/tags/factory.rb +18 -0
- data/lib/openvox-strings/yard/tags/overload_tag.rb +112 -0
- data/lib/openvox-strings/yard/tags/parameter_directive.rb +25 -0
- data/lib/openvox-strings/yard/tags/property_directive.rb +25 -0
- data/lib/openvox-strings/yard/tags/summary_tag.rb +10 -0
- data/lib/openvox-strings/yard/tags.rb +11 -0
- data/lib/openvox-strings/yard/templates/default/fulldoc/html/css/common.css +8 -0
- data/lib/openvox-strings/yard/templates/default/fulldoc/html/full_list_puppet_class.erb +9 -0
- data/lib/openvox-strings/yard/templates/default/fulldoc/html/full_list_puppet_data_type.erb +10 -0
- data/lib/openvox-strings/yard/templates/default/fulldoc/html/full_list_puppet_defined_type.erb +9 -0
- data/lib/openvox-strings/yard/templates/default/fulldoc/html/full_list_puppet_function.erb +10 -0
- data/lib/openvox-strings/yard/templates/default/fulldoc/html/full_list_puppet_plan.erb +9 -0
- data/lib/openvox-strings/yard/templates/default/fulldoc/html/full_list_puppet_provider.erb +10 -0
- data/lib/openvox-strings/yard/templates/default/fulldoc/html/full_list_puppet_task.erb +9 -0
- data/lib/openvox-strings/yard/templates/default/fulldoc/html/full_list_puppet_type.erb +9 -0
- data/lib/openvox-strings/yard/templates/default/fulldoc/html/setup.rb +93 -0
- data/lib/openvox-strings/yard/templates/default/layout/html/footer.erb +3 -0
- data/lib/openvox-strings/yard/templates/default/layout/html/objects.erb +37 -0
- data/lib/openvox-strings/yard/templates/default/layout/html/setup.rb +231 -0
- data/lib/openvox-strings/yard/templates/default/puppet_class/html/box_info.erb +26 -0
- data/lib/openvox-strings/yard/templates/default/puppet_class/html/deprecated.erb +6 -0
- data/lib/openvox-strings/yard/templates/default/puppet_class/html/header.erb +1 -0
- data/lib/openvox-strings/yard/templates/default/puppet_class/html/note.erb +6 -0
- data/lib/openvox-strings/yard/templates/default/puppet_class/html/overview.erb +6 -0
- data/lib/openvox-strings/yard/templates/default/puppet_class/html/setup.rb +16 -0
- data/lib/openvox-strings/yard/templates/default/puppet_class/html/source.erb +12 -0
- data/lib/openvox-strings/yard/templates/default/puppet_class/html/summary.erb +4 -0
- data/lib/openvox-strings/yard/templates/default/puppet_class/html/todo.erb +6 -0
- data/lib/openvox-strings/yard/templates/default/puppet_data_type/html/box_info.erb +10 -0
- data/lib/openvox-strings/yard/templates/default/puppet_data_type/html/deprecated.erb +6 -0
- data/lib/openvox-strings/yard/templates/default/puppet_data_type/html/header.erb +1 -0
- data/lib/openvox-strings/yard/templates/default/puppet_data_type/html/method_details_list.erb +6 -0
- data/lib/openvox-strings/yard/templates/default/puppet_data_type/html/note.erb +6 -0
- data/lib/openvox-strings/yard/templates/default/puppet_data_type/html/overview.erb +6 -0
- data/lib/openvox-strings/yard/templates/default/puppet_data_type/html/setup.rb +15 -0
- data/lib/openvox-strings/yard/templates/default/puppet_data_type/html/source.erb +12 -0
- data/lib/openvox-strings/yard/templates/default/puppet_data_type/html/summary.erb +4 -0
- data/lib/openvox-strings/yard/templates/default/puppet_data_type/html/todo.erb +6 -0
- data/lib/openvox-strings/yard/templates/default/puppet_data_type_alias/html/alias_of.erb +10 -0
- data/lib/openvox-strings/yard/templates/default/puppet_data_type_alias/html/box_info.erb +10 -0
- data/lib/openvox-strings/yard/templates/default/puppet_data_type_alias/html/deprecated.erb +6 -0
- data/lib/openvox-strings/yard/templates/default/puppet_data_type_alias/html/header.erb +1 -0
- data/lib/openvox-strings/yard/templates/default/puppet_data_type_alias/html/note.erb +6 -0
- data/lib/openvox-strings/yard/templates/default/puppet_data_type_alias/html/overview.erb +6 -0
- data/lib/openvox-strings/yard/templates/default/puppet_data_type_alias/html/setup.rb +19 -0
- data/lib/openvox-strings/yard/templates/default/puppet_data_type_alias/html/source.erb +12 -0
- data/lib/openvox-strings/yard/templates/default/puppet_data_type_alias/html/summary.erb +4 -0
- data/lib/openvox-strings/yard/templates/default/puppet_data_type_alias/html/todo.erb +6 -0
- data/lib/openvox-strings/yard/templates/default/puppet_defined_type/html/box_info.erb +10 -0
- data/lib/openvox-strings/yard/templates/default/puppet_defined_type/html/deprecated.erb +6 -0
- data/lib/openvox-strings/yard/templates/default/puppet_defined_type/html/header.erb +1 -0
- data/lib/openvox-strings/yard/templates/default/puppet_defined_type/html/note.erb +6 -0
- data/lib/openvox-strings/yard/templates/default/puppet_defined_type/html/overview.erb +6 -0
- data/lib/openvox-strings/yard/templates/default/puppet_defined_type/html/setup.rb +7 -0
- data/lib/openvox-strings/yard/templates/default/puppet_defined_type/html/source.erb +12 -0
- data/lib/openvox-strings/yard/templates/default/puppet_defined_type/html/summary.erb +4 -0
- data/lib/openvox-strings/yard/templates/default/puppet_defined_type/html/todo.erb +6 -0
- data/lib/openvox-strings/yard/templates/default/puppet_function/html/box_info.erb +14 -0
- data/lib/openvox-strings/yard/templates/default/puppet_function/html/deprecated.erb +6 -0
- data/lib/openvox-strings/yard/templates/default/puppet_function/html/header.erb +1 -0
- data/lib/openvox-strings/yard/templates/default/puppet_function/html/note.erb +6 -0
- data/lib/openvox-strings/yard/templates/default/puppet_function/html/overview.erb +18 -0
- data/lib/openvox-strings/yard/templates/default/puppet_function/html/setup.rb +7 -0
- data/lib/openvox-strings/yard/templates/default/puppet_function/html/source.erb +12 -0
- data/lib/openvox-strings/yard/templates/default/puppet_function/html/summary.erb +4 -0
- data/lib/openvox-strings/yard/templates/default/puppet_function/html/todo.erb +6 -0
- data/lib/openvox-strings/yard/templates/default/puppet_plan/html/box_info.erb +10 -0
- data/lib/openvox-strings/yard/templates/default/puppet_plan/html/deprecated.erb +6 -0
- data/lib/openvox-strings/yard/templates/default/puppet_plan/html/header.erb +1 -0
- data/lib/openvox-strings/yard/templates/default/puppet_plan/html/note.erb +6 -0
- data/lib/openvox-strings/yard/templates/default/puppet_plan/html/overview.erb +6 -0
- data/lib/openvox-strings/yard/templates/default/puppet_plan/html/setup.rb +13 -0
- data/lib/openvox-strings/yard/templates/default/puppet_plan/html/source.erb +12 -0
- data/lib/openvox-strings/yard/templates/default/puppet_plan/html/summary.erb +4 -0
- data/lib/openvox-strings/yard/templates/default/puppet_plan/html/todo.erb +6 -0
- data/lib/openvox-strings/yard/templates/default/puppet_provider/html/box_info.erb +14 -0
- data/lib/openvox-strings/yard/templates/default/puppet_provider/html/collection.erb +17 -0
- data/lib/openvox-strings/yard/templates/default/puppet_provider/html/features.erb +12 -0
- data/lib/openvox-strings/yard/templates/default/puppet_provider/html/header.erb +1 -0
- data/lib/openvox-strings/yard/templates/default/puppet_provider/html/overview.erb +6 -0
- data/lib/openvox-strings/yard/templates/default/puppet_provider/html/setup.rb +31 -0
- data/lib/openvox-strings/yard/templates/default/puppet_provider/html/summary.erb +4 -0
- data/lib/openvox-strings/yard/templates/default/puppet_task/html/box_info.erb +9 -0
- data/lib/openvox-strings/yard/templates/default/puppet_task/html/header.erb +1 -0
- data/lib/openvox-strings/yard/templates/default/puppet_task/html/input.erb +5 -0
- data/lib/openvox-strings/yard/templates/default/puppet_task/html/overview.erb +6 -0
- data/lib/openvox-strings/yard/templates/default/puppet_task/html/parameters.erb +16 -0
- data/lib/openvox-strings/yard/templates/default/puppet_task/html/setup.rb +24 -0
- data/lib/openvox-strings/yard/templates/default/puppet_task/html/supports_noop.erb +3 -0
- data/lib/openvox-strings/yard/templates/default/puppet_type/html/box_info.erb +20 -0
- data/lib/openvox-strings/yard/templates/default/puppet_type/html/deprecated.erb +6 -0
- data/lib/openvox-strings/yard/templates/default/puppet_type/html/features.erb +13 -0
- data/lib/openvox-strings/yard/templates/default/puppet_type/html/header.erb +1 -0
- data/lib/openvox-strings/yard/templates/default/puppet_type/html/note.erb +6 -0
- data/lib/openvox-strings/yard/templates/default/puppet_type/html/overview.erb +6 -0
- data/lib/openvox-strings/yard/templates/default/puppet_type/html/parameters.erb +35 -0
- data/lib/openvox-strings/yard/templates/default/puppet_type/html/setup.rb +36 -0
- data/lib/openvox-strings/yard/templates/default/puppet_type/html/summary.erb +4 -0
- data/lib/openvox-strings/yard/templates/default/puppet_type/html/todo.erb +6 -0
- data/lib/openvox-strings/yard/templates/default/tags/html/enum.erb +17 -0
- data/lib/openvox-strings/yard/templates/default/tags/html/puppet_overload.erb +12 -0
- data/lib/openvox-strings/yard/templates/default/tags/setup.rb +20 -0
- data/lib/openvox-strings/yard/util.rb +87 -0
- data/lib/openvox-strings/yard.rb +132 -0
- data/lib/openvox-strings.rb +88 -0
- data/lib/puppet/application/strings.rb +7 -0
- data/lib/puppet/face/strings.rb +185 -0
- data/lib/puppet/feature/rgen.rb +5 -0
- data/lib/puppet/feature/yard.rb +5 -0
- metadata +263 -0
@@ -0,0 +1,12 @@
|
|
1
|
+
<div class="method_details_list">
|
2
|
+
<table class="source_code">
|
3
|
+
<tr>
|
4
|
+
<td>
|
5
|
+
<pre class="lines"><%= "\n\n\n" %><%= h format_lines(object) %></pre>
|
6
|
+
</td>
|
7
|
+
<td>
|
8
|
+
<pre class="code"><span class="info file"># File '<%= h object.file %>'<% if object.line %>, line <%= object.line %><% end %></span><%= "\n\n" %><%= html_syntax_highlight object.source %></pre>
|
9
|
+
</td>
|
10
|
+
</tr>
|
11
|
+
</table>
|
12
|
+
</div>
|
@@ -0,0 +1 @@
|
|
1
|
+
<h1>Puppet Plan: <%= object.name %></h1>
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Initializes the template.
|
4
|
+
# @return [void]
|
5
|
+
def init
|
6
|
+
sections :header, :box_info, :summary, :overview, :note, :todo, :deprecated, T('tags'), :source
|
7
|
+
end
|
8
|
+
|
9
|
+
# Renders the box_info section.
|
10
|
+
# @return [String] Returns the rendered section.
|
11
|
+
def box_info
|
12
|
+
erb(:box_info)
|
13
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
<div class="method_details_list">
|
2
|
+
<table class="source_code">
|
3
|
+
<tr>
|
4
|
+
<td>
|
5
|
+
<pre class="lines"><%= "\n\n\n" %><%= h format_lines(object) %></pre>
|
6
|
+
</td>
|
7
|
+
<td>
|
8
|
+
<pre class="code"><span class="info file"># File '<%= h object.file %>'<% if object.line %>, line <%= object.line %><% end %></span><%= "\n\n" %><%= html_syntax_highlight object.source %></pre>
|
9
|
+
</td>
|
10
|
+
</tr>
|
11
|
+
</table>
|
12
|
+
</div>
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<div class="box_info">
|
2
|
+
<dl>
|
3
|
+
<dt>Defined in:</dt>
|
4
|
+
<dd>
|
5
|
+
<%= object.file %><% if object.files.size > 1 %><span class="defines">,<br />
|
6
|
+
<%= object.files[1..-1].map {|f| f.first }.join(",<br /> ") %></div>
|
7
|
+
<% end %>
|
8
|
+
</dd>
|
9
|
+
</dl>
|
10
|
+
<dl>
|
11
|
+
<dt>Resource type:</dt>
|
12
|
+
<dd><%= linkify(Registry["puppet_types::#{object.type_name}"], object.type_name) %></dd>
|
13
|
+
</dl>
|
14
|
+
</div>
|
@@ -0,0 +1,17 @@
|
|
1
|
+
<% if @collection && !@collection.empty? %>
|
2
|
+
<div class="tags">
|
3
|
+
<p class="tag_title"><%= @title %></p>
|
4
|
+
<ul>
|
5
|
+
|
6
|
+
<% if @collection.is_a?(Hash) %>
|
7
|
+
<% @collection.each do |key, value| %>
|
8
|
+
<li><tt><%= key %> — <%= value %></tt></li>
|
9
|
+
<% end %>
|
10
|
+
<% elsif @collection.is_a?(Array) %>
|
11
|
+
<% @collection.each do |kvps| %>
|
12
|
+
<li><tt><%= kvps.map{|k,v| "#{k} — #{v}"}.join(', ') %></tt></li>
|
13
|
+
<% end %>
|
14
|
+
<% end %>
|
15
|
+
</ul>
|
16
|
+
</div>
|
17
|
+
<% end %>
|
@@ -0,0 +1,12 @@
|
|
1
|
+
<% if object.features && !object.features.empty? %>
|
2
|
+
<div class="tags">
|
3
|
+
<p class="tag_title">Features</p>
|
4
|
+
<ul>
|
5
|
+
<% object.features.each do |feature| %>
|
6
|
+
<li>
|
7
|
+
<span class="name"><%= feature %></span>
|
8
|
+
</li>
|
9
|
+
<% end %>
|
10
|
+
</ul>
|
11
|
+
</div>
|
12
|
+
<% end %>
|
@@ -0,0 +1 @@
|
|
1
|
+
<h1>Provider: <%= object.name %></h1>
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Initializes the template.
|
4
|
+
# @return [void]
|
5
|
+
def init
|
6
|
+
sections :header, :box_info, :summary, :overview, T('tags'), :features, :confines, :defaults, :commands
|
7
|
+
end
|
8
|
+
|
9
|
+
# Renders the confines section.
|
10
|
+
# @return [String] Returns the rendered section.
|
11
|
+
def confines
|
12
|
+
@title = 'Confines'
|
13
|
+
@collection = object.confines
|
14
|
+
erb(:collection)
|
15
|
+
end
|
16
|
+
|
17
|
+
# Renders the defaults section.
|
18
|
+
# @return [String] Returns the rendered section.
|
19
|
+
def defaults
|
20
|
+
@title = 'Default Provider For'
|
21
|
+
@collection = object.defaults
|
22
|
+
erb(:collection)
|
23
|
+
end
|
24
|
+
|
25
|
+
# Renders the commands section.
|
26
|
+
# @return [String] Returns the rendered section.
|
27
|
+
def commands
|
28
|
+
@title = 'Commands'
|
29
|
+
@collection = object.commands
|
30
|
+
erb(:collection)
|
31
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
<h1>Puppet Task: <%= object.name %></h1>
|
@@ -0,0 +1,16 @@
|
|
1
|
+
<% if @parameters && !@parameters.empty? %>
|
2
|
+
<div class="tags">
|
3
|
+
<p class="tag_title"><%= @tag_title %></p>
|
4
|
+
<ul>
|
5
|
+
<% @parameters.each do |parameter, values| %>
|
6
|
+
<li>
|
7
|
+
<span class="name"><%= parameter %></span>
|
8
|
+
<span class="type">
|
9
|
+
<tt>(<%= values['type'] %>)</tt>
|
10
|
+
</span>
|
11
|
+
<% if values['description'] %> — <%= values['description'] %><% end %>
|
12
|
+
</li>
|
13
|
+
<% end %>
|
14
|
+
</ul>
|
15
|
+
</div>
|
16
|
+
<% end %>
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Initializes the template.
|
4
|
+
# @return [void]
|
5
|
+
def init
|
6
|
+
sections :header, :box_info, T('tags'), :overview, :input, :parameters
|
7
|
+
end
|
8
|
+
|
9
|
+
def json
|
10
|
+
object.statement.json
|
11
|
+
end
|
12
|
+
|
13
|
+
def description
|
14
|
+
json['description']
|
15
|
+
end
|
16
|
+
|
17
|
+
# Renders the parameters section.
|
18
|
+
# @return [String] Returns the rendered section.
|
19
|
+
def parameters
|
20
|
+
@parameters = json['parameters'] || []
|
21
|
+
@parameters.to_a.sort!
|
22
|
+
@tag_title = 'Parameters'
|
23
|
+
erb(:parameters)
|
24
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
<div class="box_info">
|
2
|
+
<dl>
|
3
|
+
<dt>Defined in:</dt>
|
4
|
+
<dd>
|
5
|
+
<%= object.file %><% if object.files.size > 1 %><span class="defines">,<br />
|
6
|
+
<%= object.files[1..-1].map {|f| f.first }.join(",<br /> ") %></div>
|
7
|
+
<% end %>
|
8
|
+
</dd>
|
9
|
+
</dl>
|
10
|
+
<% if @providers && !@providers.empty? %>
|
11
|
+
<dl>
|
12
|
+
<dt>Providers:</dt>
|
13
|
+
<dd>
|
14
|
+
<% @providers.each do |provider| %>
|
15
|
+
<%= linkify(provider, provider.name.to_s) %><br/>
|
16
|
+
<% end %>
|
17
|
+
</dd>
|
18
|
+
</dl>
|
19
|
+
<% end %>
|
20
|
+
</div>
|
@@ -0,0 +1,13 @@
|
|
1
|
+
<% if object.features && !object.features.empty? %>
|
2
|
+
<div class="tags">
|
3
|
+
<p class="tag_title">Features</p>
|
4
|
+
<ul>
|
5
|
+
<% object.features.each do |feature| %>
|
6
|
+
<li>
|
7
|
+
<span class="name"><%= feature.name %></span>
|
8
|
+
<% unless feature.docstring.empty? %> — <%= htmlify_line(feature.docstring) %><% end %>
|
9
|
+
</li>
|
10
|
+
<% end %>
|
11
|
+
</ul>
|
12
|
+
</div>
|
13
|
+
<% end %>
|
@@ -0,0 +1 @@
|
|
1
|
+
<h1>Resource Type: <%= object.name %></h1>
|
@@ -0,0 +1,35 @@
|
|
1
|
+
<% if @parameters && !@parameters.empty? %>
|
2
|
+
<div class="tags">
|
3
|
+
<p class="tag_title"><%= @tag_title %></p>
|
4
|
+
<ul>
|
5
|
+
<% @parameters.each do |parameter| %>
|
6
|
+
<li>
|
7
|
+
<span class="name"><%= parameter.name + (parameter.isnamevar ? ' (namevar)' : '') %></span>
|
8
|
+
<% if parameter.default %>
|
9
|
+
<span class="default"> (defaults to: <em><%= parameter.default %></em>)</span>
|
10
|
+
<% end %>
|
11
|
+
<% unless parameter.docstring.empty? %>
|
12
|
+
<div class="docstring">
|
13
|
+
<div class="discussion">
|
14
|
+
<%= htmlify(parameter.docstring) %>
|
15
|
+
</div>
|
16
|
+
</div>
|
17
|
+
<% end %>
|
18
|
+
<% unless parameter.values.empty? %>
|
19
|
+
<div>
|
20
|
+
Supported values:
|
21
|
+
<ul>
|
22
|
+
<% parameter.values.each do |value| %>
|
23
|
+
<li>
|
24
|
+
<% other = parameter.aliases[value] %>
|
25
|
+
<%= value %><% if other %> (alias for: <em><%= other %></em>)<% end %>
|
26
|
+
</li>
|
27
|
+
<% end %>
|
28
|
+
</ul>
|
29
|
+
</div>
|
30
|
+
<% end %>
|
31
|
+
</li>
|
32
|
+
<% end %>
|
33
|
+
</ul>
|
34
|
+
</div>
|
35
|
+
<% end %>
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Initializes the template.
|
4
|
+
# @return [void]
|
5
|
+
def init
|
6
|
+
sections :header, :box_info, :summary, :overview, :note, :todo, :deprecated, T('tags'), :properties, :parameters, :features
|
7
|
+
end
|
8
|
+
|
9
|
+
# Renders the box_info section.
|
10
|
+
# @return [String] Returns the rendered section.
|
11
|
+
def box_info
|
12
|
+
@providers = OpenvoxStrings::Yard::CodeObjects::Providers.instance(object.name).children
|
13
|
+
erb(:box_info)
|
14
|
+
end
|
15
|
+
|
16
|
+
# Renders the properties section.
|
17
|
+
# @return [String] Returns the rendered section.
|
18
|
+
def properties
|
19
|
+
# Properties are the same thing as parameters (from the documentation standpoint),
|
20
|
+
# so reuse the same template but with a different title and data source.
|
21
|
+
#
|
22
|
+
# "checks" such as "creates" and "onlyif" are another type of property
|
23
|
+
@parameters = (object.properties || []) + (object.checks || [])
|
24
|
+
@parameters.sort_by!(&:name)
|
25
|
+
@tag_title = 'Properties'
|
26
|
+
erb(:parameters)
|
27
|
+
end
|
28
|
+
|
29
|
+
# Renders the parameters section.
|
30
|
+
# @return [String] Returns the rendered section.
|
31
|
+
def parameters
|
32
|
+
@parameters = object.parameters || []
|
33
|
+
@parameters.sort_by!(&:name)
|
34
|
+
@tag_title = 'Parameters'
|
35
|
+
erb(:parameters)
|
36
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
<% if object.has_tag?(:enum) %>
|
2
|
+
<% object.parameters.each do |param, default| %>
|
3
|
+
<% tags = object.tags(:enum).select {|x| x.name.to_s == param.to_s.sub(/^\*+|:$/, '') } %>
|
4
|
+
<% next if tags.empty? %>
|
5
|
+
<p class="tag_title">Enum Options (<tt><%= param %></tt>):</p>
|
6
|
+
<ul class="option">
|
7
|
+
<% for tag in tags %>
|
8
|
+
<li>
|
9
|
+
<span class="name"><%= tag.pair.name %></span>
|
10
|
+
<% if tag.pair.text && tag.pair.text =~ /\S/ %>
|
11
|
+
— <%= htmlify_line(tag.pair.text) %>
|
12
|
+
<% end %>
|
13
|
+
</li>
|
14
|
+
<% end %>
|
15
|
+
</ul>
|
16
|
+
<% end %>
|
17
|
+
<% end %>
|
@@ -0,0 +1,12 @@
|
|
1
|
+
<% if object.has_tag?(:overload) && object.tags(:overload).any? {|o| !o.docstring.blank? } %>
|
2
|
+
<p class="tag_title">Signatures:</p>
|
3
|
+
<ul class="overload">
|
4
|
+
<% object.tags(:overload).each_with_index do |overload, index| %>
|
5
|
+
<% next if overload.docstring.blank? %>
|
6
|
+
<li class="overload_item">
|
7
|
+
<span class="signature"><%= "<strong>#{h(overload.signature)}</strong> ⇒ #{signature_types(overload, false)}" %></span>
|
8
|
+
<%= yieldall :object => overload %>
|
9
|
+
</li>
|
10
|
+
<% end %>
|
11
|
+
</ul>
|
12
|
+
<% end %>
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Called to return parameter tags.
|
4
|
+
# @return [Array<YARD::Tag>] Returns the parameter tags if the object should have parameters.
|
5
|
+
def param
|
6
|
+
tag(:param) if
|
7
|
+
%i[method puppet_class puppet_data_type puppet_defined_type puppet_function puppet_task puppet_plan].include?(object.type)
|
8
|
+
end
|
9
|
+
|
10
|
+
# Renders the overload section.
|
11
|
+
# @return [String] Returns the rendered section.
|
12
|
+
def overload
|
13
|
+
erb(object.type == :puppet_function ? :puppet_overload : :overload)
|
14
|
+
end
|
15
|
+
|
16
|
+
# Renders the enum section.
|
17
|
+
# @return [String] Returns the rendered section.
|
18
|
+
def enum
|
19
|
+
erb(:enum)
|
20
|
+
end
|
@@ -0,0 +1,87 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'puppet/util'
|
4
|
+
|
5
|
+
# The module for various openvox-strings utility helpers.
|
6
|
+
module OpenvoxStrings::Yard::Util
|
7
|
+
# Trims indentation from trailing whitespace and removes ruby literal quotation
|
8
|
+
# syntax `%Q{}` and `%{q}` from parsed strings.
|
9
|
+
# @param [String] str The string to scrub.
|
10
|
+
# @return [String] A scrubbed string.
|
11
|
+
def self.scrub_string(str)
|
12
|
+
match = str.match(/^%[Qq]{(.*)}$/m)
|
13
|
+
return Puppet::Util::Docs.scrub(match[1]) if match
|
14
|
+
|
15
|
+
Puppet::Util::Docs.scrub(str)
|
16
|
+
end
|
17
|
+
|
18
|
+
# hacksville, usa
|
19
|
+
# YARD creates ids in the html with with the style of "label-Module+description", where the markdown
|
20
|
+
# we use in the README involves the GitHub-style, which is #module-description. This takes our GitHub-style
|
21
|
+
# links and converts them to reference the YARD-style ids.
|
22
|
+
# @see https://github.com/octokit/octokit.rb/blob/0f13944e8dbb0210d1e266addd3335c6dc9fe36a/yard/default/layout/html/setup.rb#L5-L14
|
23
|
+
# @param [String] data HTML document to convert
|
24
|
+
# @return [String] HTML document with links converted
|
25
|
+
def self.github_to_yard_links(data)
|
26
|
+
data.scan(/href="\#(.+)"/).each do |bad_link|
|
27
|
+
data = data.gsub("=\"##{bad_link.first}\"", "=\"#label-#{bad_link.first.capitalize.tr('-', '+')}\"")
|
28
|
+
end
|
29
|
+
|
30
|
+
data
|
31
|
+
end
|
32
|
+
|
33
|
+
# Converts a list of tags into an array of hashes.
|
34
|
+
# @param [Array] tags List of tags to be converted into an array of hashes.
|
35
|
+
# @return [Array] Returns an array of tag hashes.
|
36
|
+
def self.tags_to_hashes(tags)
|
37
|
+
# Skip over the API tags that are public
|
38
|
+
tags.select { |t| t.tag_name != 'api' || t.text != 'public' }.map do |t|
|
39
|
+
next t.to_hash if t.respond_to?(:to_hash)
|
40
|
+
|
41
|
+
tag = { tag_name: t.tag_name }
|
42
|
+
# grab nested information for @option and @enum tags
|
43
|
+
if %w[option enum].include?(tag[:tag_name])
|
44
|
+
tag[:opt_name] = t.pair.name
|
45
|
+
tag[:opt_text] = t.pair.text
|
46
|
+
tag[:opt_types] = t.pair.types if t.pair.types
|
47
|
+
tag[:parent] = t.name
|
48
|
+
end
|
49
|
+
tag[:text] = t.text if t.text
|
50
|
+
tag[:types] = t.types if t.types
|
51
|
+
tag[:name] = t.name if t.name
|
52
|
+
tag
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
# Converts a YARD::Docstring (or String) to a docstring hash for JSON output.
|
57
|
+
# @param [YARD::Docstring, String] docstring The docstring to convert to a hash.
|
58
|
+
# @param [Array] select_tags List of tags to select. Other tags will be filtered out.
|
59
|
+
# @return [Hash] Returns a hash representation of the given docstring.
|
60
|
+
def self.docstring_to_hash(docstring, select_tags = nil)
|
61
|
+
hash = {}
|
62
|
+
hash[:text] = docstring
|
63
|
+
|
64
|
+
if docstring.is_a? YARD::Docstring
|
65
|
+
tags = tags_to_hashes(docstring.tags.select { |t| select_tags.nil? || select_tags.include?(t.tag_name.to_sym) })
|
66
|
+
|
67
|
+
unless tags.empty?
|
68
|
+
hash[:tags] = tags
|
69
|
+
# .sort_by do |tag|
|
70
|
+
# sort_key = tag[:tag_name].dup
|
71
|
+
# sort_key << "-#{tag[:name]}" if tag[:name]
|
72
|
+
# sort_key << "-#{tag[:opt_name]}" if tag[:opt_name]
|
73
|
+
# sort_key
|
74
|
+
# end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
hash
|
79
|
+
end
|
80
|
+
|
81
|
+
# Convert Puppet AST to text.
|
82
|
+
# @param [Puppet::Pops::Model::PopsObject] ast The Puppet AST to convert to text.
|
83
|
+
# @return [String] Returns a string of Puppet code.
|
84
|
+
def self.ast_to_text(ast)
|
85
|
+
ast.locator.extract_tree_text(ast)
|
86
|
+
end
|
87
|
+
end
|