puppet-strings 1.2.1 → 2.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 +4 -4
- data/CHANGELOG.md +26 -0
- data/CONTRIBUTING.md +3 -7
- data/JSON.md +126 -8
- data/README.md +16 -498
- data/lib/puppet-strings.rb +6 -0
- data/lib/puppet-strings/json.rb +2 -0
- data/lib/puppet-strings/markdown.rb +6 -1
- data/lib/puppet-strings/markdown/puppet_plan.rb +14 -0
- data/lib/puppet-strings/markdown/puppet_plans.rb +37 -0
- data/lib/puppet-strings/markdown/puppet_task.rb +24 -0
- data/lib/puppet-strings/markdown/puppet_tasks.rb +34 -0
- data/lib/puppet-strings/markdown/table_of_contents.rb +3 -1
- data/lib/puppet-strings/markdown/templates/classes_and_defines.erb +8 -5
- data/lib/puppet-strings/markdown/templates/function.erb +2 -3
- data/lib/puppet-strings/markdown/templates/puppet_task.erb +28 -0
- data/lib/puppet-strings/markdown/templates/resource_type.erb +9 -5
- data/lib/puppet-strings/markdown/templates/table_of_contents.erb +5 -0
- data/lib/puppet-strings/monkey_patches/display_object_command.rb +11 -0
- data/lib/puppet-strings/yard.rb +15 -1
- data/lib/puppet-strings/yard/code_objects.rb +2 -0
- data/lib/puppet-strings/yard/code_objects/plan.rb +56 -0
- data/lib/puppet-strings/yard/code_objects/task.rb +70 -0
- data/lib/puppet-strings/yard/handlers.rb +6 -0
- data/lib/puppet-strings/yard/handlers/json/base.rb +5 -0
- data/lib/puppet-strings/yard/handlers/json/task_handler.rb +31 -0
- data/lib/puppet-strings/yard/handlers/puppet/base.rb +1 -1
- data/lib/puppet-strings/yard/handlers/puppet/class_handler.rb +1 -1
- data/lib/puppet-strings/yard/handlers/puppet/defined_type_handler.rb +1 -1
- data/lib/puppet-strings/yard/handlers/puppet/function_handler.rb +1 -1
- data/lib/puppet-strings/yard/handlers/puppet/plan_handler.rb +27 -0
- data/lib/puppet-strings/yard/handlers/ruby/function_handler.rb +4 -1
- data/lib/puppet-strings/yard/handlers/ruby/rsapi_handler.rb +12 -2
- data/lib/puppet-strings/yard/parsers.rb +4 -0
- data/lib/puppet-strings/yard/parsers/json/parser.rb +33 -0
- data/lib/puppet-strings/yard/parsers/json/task_statement.rb +35 -0
- data/lib/puppet-strings/yard/parsers/puppet/parser.rb +11 -0
- data/lib/puppet-strings/yard/parsers/puppet/statement.rb +14 -0
- data/lib/puppet-strings/yard/templates/default/fulldoc/html/full_list_puppet_plan.erb +9 -0
- data/lib/puppet-strings/yard/templates/default/fulldoc/html/full_list_puppet_task.erb +9 -0
- data/lib/puppet-strings/yard/templates/default/fulldoc/html/setup.rb +18 -0
- data/lib/puppet-strings/yard/templates/default/layout/html/setup.rb +42 -2
- data/lib/puppet-strings/yard/templates/default/puppet_plan/html/box_info.erb +10 -0
- data/lib/puppet-strings/yard/templates/default/puppet_plan/html/header.erb +1 -0
- data/lib/puppet-strings/yard/templates/default/puppet_plan/html/overview.erb +6 -0
- data/lib/puppet-strings/yard/templates/default/puppet_plan/html/setup.rb +11 -0
- data/lib/puppet-strings/yard/templates/default/puppet_plan/html/source.erb +12 -0
- data/lib/puppet-strings/yard/templates/default/puppet_plan/html/summary.erb +4 -0
- data/lib/puppet-strings/yard/templates/default/puppet_task/html/box_info.erb +9 -0
- data/lib/puppet-strings/yard/templates/default/puppet_task/html/header.erb +1 -0
- data/lib/puppet-strings/yard/templates/default/puppet_task/html/input.erb +5 -0
- data/lib/puppet-strings/yard/templates/default/puppet_task/html/overview.erb +6 -0
- data/lib/puppet-strings/yard/templates/default/puppet_task/html/parameters.erb +16 -0
- data/lib/puppet-strings/yard/templates/default/puppet_task/html/setup.rb +22 -0
- data/lib/puppet-strings/yard/templates/default/puppet_task/html/supports_noop.erb +3 -0
- data/lib/puppet-strings/yard/templates/default/tags/setup.rb +3 -1
- data/lib/puppet-strings/yard/util.rb +14 -0
- data/spec/fixtures/unit/json/output.json +50 -0
- data/spec/fixtures/unit/json/output_with_plan.json +689 -0
- data/spec/fixtures/unit/markdown/output.md +63 -8
- data/spec/fixtures/unit/markdown/output_with_plan.md +472 -0
- data/spec/spec_helper.rb +5 -2
- data/spec/unit/puppet-strings/json_spec.rb +42 -2
- data/spec/unit/puppet-strings/markdown_spec.rb +41 -8
- data/spec/unit/puppet-strings/yard/code_objects/task_spec.rb +92 -0
- data/spec/unit/puppet-strings/yard/handlers/json/task_handler_spec.rb +124 -0
- data/spec/unit/puppet-strings/yard/handlers/puppet/class_handler_spec.rb +1 -1
- data/spec/unit/puppet-strings/yard/handlers/puppet/defined_type_handler_spec.rb +19 -12
- data/spec/unit/puppet-strings/yard/handlers/ruby/function_handler_spec.rb +33 -0
- data/spec/unit/puppet-strings/yard/handlers/ruby/rsapi_handler_spec.rb +8 -7
- data/spec/unit/puppet-strings/yard/parsers/json/parser_spec.rb +70 -0
- data/spec/unit/puppet-strings/yard/parsers/json/task_statement_spec.rb +56 -0
- data/spec/unit/puppet-strings/yard/parsers/puppet/parser_spec.rb +1 -1
- data/spec/unit/puppet-strings/yard/util_spec.rb +17 -0
- metadata +38 -5
- data/MAINTAINERS +0 -17
data/lib/puppet-strings.rb
CHANGED
@@ -6,6 +6,8 @@ module PuppetStrings
|
|
6
6
|
functions/**/*.pp
|
7
7
|
types/**/*.pp
|
8
8
|
lib/**/*.rb
|
9
|
+
tasks/*.json
|
10
|
+
plans/*.pp
|
9
11
|
).freeze
|
10
12
|
|
11
13
|
# Generates documentation.
|
@@ -61,6 +63,10 @@ module PuppetStrings
|
|
61
63
|
end
|
62
64
|
end
|
63
65
|
|
66
|
+
def self.puppet_5?
|
67
|
+
Puppet::Util::Package.versioncmp(Puppet.version, "5.0.0") >= 0
|
68
|
+
end
|
69
|
+
|
64
70
|
def self.render_json(path)
|
65
71
|
require 'puppet-strings/json'
|
66
72
|
PuppetStrings::Json.render(path)
|
data/lib/puppet-strings/json.rb
CHANGED
@@ -12,6 +12,8 @@ module PuppetStrings::Json
|
|
12
12
|
resource_types: YARD::Registry.all(:puppet_type).sort_by!(&:name).map!(&:to_hash),
|
13
13
|
providers: YARD::Registry.all(:puppet_provider).sort_by!(&:name).map!(&:to_hash),
|
14
14
|
puppet_functions: YARD::Registry.all(:puppet_function).sort_by!(&:name).map!(&:to_hash),
|
15
|
+
puppet_tasks: YARD::Registry.all(:puppet_task).sort_by!(&:name).map!(&:to_hash),
|
16
|
+
puppet_plans: YARD::Registry.all(:puppet_plan).sort_by!(&:name).map!(&:to_hash)
|
15
17
|
# TODO: Need Ruby documentation?
|
16
18
|
}
|
17
19
|
|
@@ -6,17 +6,22 @@ module PuppetStrings::Markdown
|
|
6
6
|
require_relative 'markdown/functions'
|
7
7
|
require_relative 'markdown/defined_types'
|
8
8
|
require_relative 'markdown/resource_types'
|
9
|
+
require_relative 'markdown/puppet_tasks'
|
10
|
+
require_relative 'markdown/puppet_plans'
|
9
11
|
require_relative 'markdown/table_of_contents'
|
10
12
|
|
11
13
|
# generates markdown documentation
|
12
14
|
# @return [String] markdown doc
|
13
15
|
def self.generate
|
14
|
-
final = "# Reference\n
|
16
|
+
final = "# Reference\n"
|
17
|
+
final << "<!-- DO NOT EDIT: This document was generated by Puppet Strings -->\n\n"
|
15
18
|
final << PuppetStrings::Markdown::TableOfContents.render
|
16
19
|
final << PuppetStrings::Markdown::PuppetClasses.render
|
17
20
|
final << PuppetStrings::Markdown::DefinedTypes.render
|
18
21
|
final << PuppetStrings::Markdown::ResourceTypes.render
|
19
22
|
final << PuppetStrings::Markdown::Functions.render
|
23
|
+
final << PuppetStrings::Markdown::PuppetTasks.render
|
24
|
+
final << PuppetStrings::Markdown::PuppetPlans.render
|
20
25
|
|
21
26
|
final
|
22
27
|
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'puppet-strings/markdown/base'
|
2
|
+
|
3
|
+
module PuppetStrings::Markdown
|
4
|
+
class PuppetPlan < Base
|
5
|
+
def initialize(registry)
|
6
|
+
@template = 'classes_and_defines.erb'
|
7
|
+
super(registry, 'plan')
|
8
|
+
end
|
9
|
+
|
10
|
+
def render
|
11
|
+
super(@template)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require_relative 'puppet_plan'
|
2
|
+
|
3
|
+
module PuppetStrings::Markdown
|
4
|
+
module PuppetPlans
|
5
|
+
|
6
|
+
# @return [Array] list of classes
|
7
|
+
def self.in_plans
|
8
|
+
arr = YARD::Registry.all(:puppet_plan).sort_by!(&:name).map!(&:to_hash)
|
9
|
+
arr.map! { |a| PuppetStrings::Markdown::PuppetPlan.new(a) }
|
10
|
+
end
|
11
|
+
|
12
|
+
def self.contains_private?
|
13
|
+
result = false
|
14
|
+
unless in_plans.nil?
|
15
|
+
in_plans.find { |plan| plan.private? }.nil? ? false : true
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
def self.render
|
20
|
+
final = in_plans.length > 0 ? "## Plans\n\n" : ""
|
21
|
+
in_plans.each do |plan|
|
22
|
+
final << plan.render unless plan.private?
|
23
|
+
end
|
24
|
+
final
|
25
|
+
end
|
26
|
+
|
27
|
+
def self.toc_info
|
28
|
+
final = ["Plans"]
|
29
|
+
|
30
|
+
in_plans.each do |plan|
|
31
|
+
final.push(plan.toc_info)
|
32
|
+
end
|
33
|
+
|
34
|
+
final
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'puppet-strings/markdown/base'
|
2
|
+
|
3
|
+
module PuppetStrings::Markdown
|
4
|
+
class PuppetTask < Base
|
5
|
+
def initialize(registry)
|
6
|
+
@template = 'puppet_task.erb'
|
7
|
+
@registry = registry
|
8
|
+
super(registry, 'task')
|
9
|
+
end
|
10
|
+
|
11
|
+
def render
|
12
|
+
super(@template)
|
13
|
+
end
|
14
|
+
|
15
|
+
def supports_noop
|
16
|
+
@registry[:supports_noop]
|
17
|
+
end
|
18
|
+
|
19
|
+
def input_method
|
20
|
+
@registry[:input_method]
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
require_relative 'puppet_task'
|
2
|
+
|
3
|
+
module PuppetStrings::Markdown
|
4
|
+
module PuppetTasks
|
5
|
+
|
6
|
+
# @return [Array] list of classes
|
7
|
+
def self.in_tasks
|
8
|
+
arr = YARD::Registry.all(:puppet_task).sort_by!(&:name).map!(&:to_hash)
|
9
|
+
arr.map! { |a| PuppetStrings::Markdown::PuppetTask.new(a) }
|
10
|
+
end
|
11
|
+
|
12
|
+
def self.contains_private?
|
13
|
+
false
|
14
|
+
end
|
15
|
+
|
16
|
+
def self.render
|
17
|
+
final = in_tasks.length > 0 ? "## Tasks\n\n" : ""
|
18
|
+
in_tasks.each do |task|
|
19
|
+
final << task.render unless task.private?
|
20
|
+
end
|
21
|
+
final
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.toc_info
|
25
|
+
final = ["Tasks"]
|
26
|
+
|
27
|
+
in_tasks.each do |task|
|
28
|
+
final.push(task.toc_info)
|
29
|
+
end
|
30
|
+
|
31
|
+
final
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -6,7 +6,9 @@ module PuppetStrings::Markdown
|
|
6
6
|
[PuppetStrings::Markdown::PuppetClasses,
|
7
7
|
PuppetStrings::Markdown::DefinedTypes,
|
8
8
|
PuppetStrings::Markdown::ResourceTypes,
|
9
|
-
PuppetStrings::Markdown::Functions
|
9
|
+
PuppetStrings::Markdown::Functions,
|
10
|
+
PuppetStrings::Markdown::PuppetTasks,
|
11
|
+
PuppetStrings::Markdown::PuppetPlans].each do |r|
|
10
12
|
toc = r.toc_info
|
11
13
|
group_name = toc.shift
|
12
14
|
group = toc
|
@@ -2,14 +2,12 @@
|
|
2
2
|
|
3
3
|
<% if text -%>
|
4
4
|
<%= text %>
|
5
|
-
|
6
5
|
<% elsif summary -%>
|
7
6
|
<%= summary %>
|
8
|
-
|
9
7
|
<% else -%>
|
10
8
|
<%= "The #{name} class." %>
|
11
|
-
|
12
9
|
<% end -%>
|
10
|
+
|
13
11
|
<% if since -%>
|
14
12
|
* **Since** <%= since %>
|
15
13
|
|
@@ -17,22 +15,28 @@
|
|
17
15
|
<% if see -%>
|
18
16
|
* **See also**
|
19
17
|
<% see.each do |sa| -%>
|
18
|
+
<% if sa[:name] -%>
|
20
19
|
<%= sa[:name] %>
|
20
|
+
<% end -%>
|
21
|
+
<% if sa[:text] -%>
|
21
22
|
<%= sa[:text] %>
|
22
23
|
<% end -%>
|
24
|
+
<% end -%>
|
23
25
|
|
24
26
|
<% end -%>
|
25
27
|
<% if examples -%>
|
26
28
|
#### Examples
|
29
|
+
|
27
30
|
<% examples.each do |eg| -%>
|
28
31
|
##### <%= eg[:name] %>
|
32
|
+
|
29
33
|
```puppet
|
30
34
|
<%= eg[:text] %>
|
31
35
|
```
|
32
36
|
|
33
37
|
<% end -%>
|
34
38
|
<% end -%>
|
35
|
-
<% if params
|
39
|
+
<% if params -%>
|
36
40
|
#### Parameters
|
37
41
|
|
38
42
|
The following parameters are available in the `<%= name %>` <%= @type %>.
|
@@ -60,4 +64,3 @@ Default value: <%= value_string(defaults[param[:name]]) %>
|
|
60
64
|
<% end -%>
|
61
65
|
<% end -%>
|
62
66
|
<% end -%>
|
63
|
-
|
@@ -1,16 +1,15 @@
|
|
1
1
|
### <%= name %>
|
2
|
+
|
2
3
|
Type: <%= type %>
|
3
4
|
|
4
5
|
<% if text -%>
|
5
6
|
<%= text %>
|
6
|
-
|
7
7
|
<% elsif summary -%>
|
8
8
|
<%= summary %>
|
9
|
-
|
10
9
|
<% else -%>
|
11
10
|
<%= "The #{name} class." %>
|
12
|
-
|
13
11
|
<% end -%>
|
12
|
+
|
14
13
|
<% signatures.each do |sig| -%>
|
15
14
|
#### `<%= sig.signature %>`
|
16
15
|
|
@@ -0,0 +1,28 @@
|
|
1
|
+
### <%= name %>
|
2
|
+
|
3
|
+
<% if text -%>
|
4
|
+
<%= text %>
|
5
|
+
|
6
|
+
<% elsif summary -%>
|
7
|
+
<%= summary %>
|
8
|
+
|
9
|
+
<% else -%>
|
10
|
+
<%= "The #{name} task." %>
|
11
|
+
|
12
|
+
<% end -%>
|
13
|
+
**Supports noop?** <%= supports_noop %>
|
14
|
+
|
15
|
+
<% if params -%>
|
16
|
+
#### Parameters
|
17
|
+
|
18
|
+
<% params.each do |param| -%>
|
19
|
+
##### `<%= param[:name] %>`
|
20
|
+
|
21
|
+
<% if param[:types] -%>
|
22
|
+
Data type: `<%= param[:types].join(', ') -%>`
|
23
|
+
|
24
|
+
<% end -%>
|
25
|
+
<%= param[:text] %>
|
26
|
+
|
27
|
+
<% end -%>
|
28
|
+
<% end -%>
|
@@ -2,14 +2,12 @@
|
|
2
2
|
|
3
3
|
<% if text -%>
|
4
4
|
<%= text %>
|
5
|
-
|
6
5
|
<% elsif summary -%>
|
7
6
|
<%= summary %>
|
8
|
-
|
9
7
|
<% else -%>
|
10
8
|
<%= "The #{name} type." %>
|
11
|
-
|
12
9
|
<% end -%>
|
10
|
+
|
13
11
|
<% if since -%>
|
14
12
|
* **Since** <%= since %>
|
15
13
|
|
@@ -17,21 +15,28 @@
|
|
17
15
|
<% if see -%>
|
18
16
|
* **See also**
|
19
17
|
<% see.each do |sa| -%>
|
18
|
+
<% if sa[:name] -%>
|
20
19
|
<%= sa[:name] %>
|
20
|
+
<% end -%>
|
21
|
+
<% if sa[:text] -%>
|
21
22
|
<%= sa[:text] %>
|
22
23
|
<% end -%>
|
24
|
+
<% end -%>
|
23
25
|
|
24
26
|
<% end -%>
|
25
27
|
<% if examples -%>
|
26
28
|
#### Examples
|
29
|
+
|
27
30
|
<% examples.each do |eg| -%>
|
28
31
|
##### <%= eg[:name] %>
|
32
|
+
|
29
33
|
```puppet
|
30
34
|
<%= eg[:text] %>
|
31
35
|
```
|
36
|
+
|
32
37
|
<% end -%>
|
33
38
|
<% end -%>
|
34
|
-
<% if properties
|
39
|
+
<% if properties -%>
|
35
40
|
#### Properties
|
36
41
|
|
37
42
|
The following properties are available in the `<%= name %>` <%= @type %>.
|
@@ -111,4 +116,3 @@ Default value: <%= value_string(param[:default]) %>
|
|
111
116
|
<% end -%>
|
112
117
|
<% end -%>
|
113
118
|
<% end -%>
|
114
|
-
|
@@ -1,13 +1,17 @@
|
|
1
1
|
<% if group.length > 0 -%>
|
2
2
|
## <%= group_name %>
|
3
|
+
|
3
4
|
<% if priv -%>
|
4
5
|
### Public <%= group_name %>
|
6
|
+
|
5
7
|
<% group.each do |item| -%>
|
6
8
|
<% unless item[:private] -%>
|
7
9
|
* [`<%= item[:name] %>`](#<%= item[:link] %>): <%= item[:desc] %>
|
8
10
|
<% end -%>
|
9
11
|
<% end -%>
|
12
|
+
|
10
13
|
### Private <%= group_name %>
|
14
|
+
|
11
15
|
<% group.each do |item| -%>
|
12
16
|
<% if item[:private] -%>
|
13
17
|
* `<%= item[:name] %>`: <%= item[:desc] %>
|
@@ -18,4 +22,5 @@
|
|
18
22
|
* [`<%= item[:name] %>`](#<%= item[:link] %>): <%= item[:desc] %>
|
19
23
|
<% end -%>
|
20
24
|
<% end -%>
|
25
|
+
|
21
26
|
<% end -%>
|
@@ -0,0 +1,11 @@
|
|
1
|
+
# Monkey patch URL decoding in object displays. Usually :: is interpreted as a
|
2
|
+
# namespace, but this is disabled in our base object, and so instead gets
|
3
|
+
# URL-encoded.
|
4
|
+
require 'yard/server/commands/display_object_command'
|
5
|
+
class YARD::Server::Commands::DisplayObjectCommand
|
6
|
+
private
|
7
|
+
alias_method :object_path_yard, :object_path
|
8
|
+
def object_path
|
9
|
+
object_path_yard.gsub('_3A', ':')
|
10
|
+
end
|
11
|
+
end
|
data/lib/puppet-strings/yard.rb
CHANGED
@@ -6,6 +6,7 @@ module PuppetStrings::Yard
|
|
6
6
|
require 'puppet-strings/yard/handlers'
|
7
7
|
require 'puppet-strings/yard/tags'
|
8
8
|
require 'puppet-strings/yard/parsers'
|
9
|
+
require 'puppet-strings/monkey_patches/display_object_command'
|
9
10
|
|
10
11
|
# Sets up YARD for use with puppet-strings.
|
11
12
|
# @return [void]
|
@@ -15,10 +16,12 @@ module PuppetStrings::Yard
|
|
15
16
|
|
16
17
|
# Register the Puppet parser
|
17
18
|
YARD::Parser::SourceParser.register_parser_type(:puppet, PuppetStrings::Yard::Parsers::Puppet::Parser, ['pp'])
|
19
|
+
YARD::Parser::SourceParser.register_parser_type(:json, PuppetStrings::Yard::Parsers::JSON::Parser, ['json'])
|
18
20
|
|
19
21
|
# Register our handlers
|
20
22
|
YARD::Handlers::Processor.register_handler_namespace(:puppet, PuppetStrings::Yard::Handlers::Puppet)
|
21
23
|
YARD::Handlers::Processor.register_handler_namespace(:puppet_ruby, PuppetStrings::Yard::Handlers::Ruby)
|
24
|
+
YARD::Handlers::Processor.register_handler_namespace(:json, PuppetStrings::Yard::Handlers::JSON)
|
22
25
|
|
23
26
|
# Register the tag directives
|
24
27
|
PuppetStrings::Yard::Tags::ParameterDirective.register!
|
@@ -46,7 +49,9 @@ class YARD::CLI::Yardoc
|
|
46
49
|
:puppet_defined_type,
|
47
50
|
:puppet_type,
|
48
51
|
:puppet_provider,
|
49
|
-
:puppet_function
|
52
|
+
:puppet_function,
|
53
|
+
:puppet_task,
|
54
|
+
:puppet_plan
|
50
55
|
)
|
51
56
|
end
|
52
57
|
end
|
@@ -75,6 +80,15 @@ class YARD::CLI::Stats
|
|
75
80
|
output 'Puppet Functions', *type_statistics_all(:puppet_function)
|
76
81
|
end
|
77
82
|
|
83
|
+
def stats_for_puppet_tasks
|
84
|
+
output 'Puppet Tasks', *type_statistics_all(:puppet_task)
|
85
|
+
end
|
86
|
+
|
87
|
+
def stats_for_puppet_plans
|
88
|
+
return unless PuppetStrings.puppet_5?
|
89
|
+
output 'Puppet Plans', *type_statistics_all(:puppet_plan)
|
90
|
+
end
|
91
|
+
|
78
92
|
def output(name, data, undoc = nil)
|
79
93
|
# Monkey patch output to accommodate our larger header widths
|
80
94
|
@total += data if data.is_a?(Integer) && undoc
|
@@ -5,4 +5,6 @@ module PuppetStrings::Yard::CodeObjects
|
|
5
5
|
require 'puppet-strings/yard/code_objects/type'
|
6
6
|
require 'puppet-strings/yard/code_objects/provider'
|
7
7
|
require 'puppet-strings/yard/code_objects/function'
|
8
|
+
require 'puppet-strings/yard/code_objects/task'
|
9
|
+
require 'puppet-strings/yard/code_objects/plan'
|
8
10
|
end
|
@@ -0,0 +1,56 @@
|
|
1
|
+
require 'puppet-strings/yard/code_objects/group'
|
2
|
+
|
3
|
+
class PuppetStrings::Yard::CodeObjects::Plans < PuppetStrings::Yard::CodeObjects::Group
|
4
|
+
# Gets the singleton instance of the group.
|
5
|
+
# @return Returns the singleton instance of the group.
|
6
|
+
def self.instance
|
7
|
+
super(:puppet_plans)
|
8
|
+
end
|
9
|
+
|
10
|
+
# Gets the display name of the group.
|
11
|
+
# @param [Boolean] prefix whether to show a prefix. Ignored for Puppet group namespaces.
|
12
|
+
# @return [String] Returns the display name of the group.
|
13
|
+
def name(prefix = false)
|
14
|
+
'Puppet Plans'
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
class PuppetStrings::Yard::CodeObjects::Plan < PuppetStrings::Yard::CodeObjects::Base
|
19
|
+
attr_reader :statement
|
20
|
+
attr_reader :parameters
|
21
|
+
|
22
|
+
# Initializes a Puppet plan code object.
|
23
|
+
# @param [PuppetStrings::Parsers::PlanStatement] statement The plan statement that was parsed.
|
24
|
+
# @return [void]
|
25
|
+
def initialize(statement)
|
26
|
+
@statement = statement
|
27
|
+
@parameters = statement.parameters.map { |p| [p.name, p.value] }
|
28
|
+
super(PuppetStrings::Yard::CodeObjects::Plans.instance, statement.name)
|
29
|
+
end
|
30
|
+
|
31
|
+
# Gets the type of the code object.
|
32
|
+
# @return Returns the type of the code object.
|
33
|
+
def type
|
34
|
+
:puppet_plan
|
35
|
+
end
|
36
|
+
|
37
|
+
# Gets the source of the code object.
|
38
|
+
# @return Returns the source of the code object.
|
39
|
+
def source
|
40
|
+
@statement.source
|
41
|
+
end
|
42
|
+
|
43
|
+
# Converts the code object to a hash representation.
|
44
|
+
# @return [Hash] Returns a hash representation of the code object.
|
45
|
+
def to_hash
|
46
|
+
hash = {}
|
47
|
+
hash[:name] = name
|
48
|
+
hash[:file] = file
|
49
|
+
hash[:line] = line
|
50
|
+
hash[:docstring] = PuppetStrings::Json.docstring_to_hash(docstring)
|
51
|
+
defaults = Hash[*parameters.select{ |p| !p[1].nil? }.flatten]
|
52
|
+
hash[:defaults] = defaults unless defaults.empty?
|
53
|
+
hash[:source] = source unless source && source.empty?
|
54
|
+
hash
|
55
|
+
end
|
56
|
+
end
|