puppet-strings 3.0.1 → 4.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (67) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +17 -88
  3. data/LICENSE +174 -10
  4. data/README.md +1 -1
  5. data/lib/puppet/face/strings.rb +3 -3
  6. data/lib/puppet-strings/describe.rb +7 -11
  7. data/lib/puppet-strings/markdown/base.rb +6 -4
  8. data/lib/puppet-strings/markdown/data_type.rb +3 -4
  9. data/lib/puppet-strings/markdown/function.rb +5 -5
  10. data/lib/puppet-strings/markdown/resource_type.rb +1 -1
  11. data/lib/puppet-strings/markdown/templates/classes_and_defines.erb +4 -0
  12. data/lib/puppet-strings/markdown/templates/data_type.erb +4 -0
  13. data/lib/puppet-strings/markdown/templates/function.erb +4 -0
  14. data/lib/puppet-strings/markdown/templates/resource_type.erb +4 -0
  15. data/lib/puppet-strings/markdown.rb +9 -11
  16. data/lib/puppet-strings/tasks/generate.rb +5 -3
  17. data/lib/puppet-strings/tasks/gh_pages.rb +6 -6
  18. data/lib/puppet-strings/tasks/validate.rb +3 -3
  19. data/lib/puppet-strings/tasks.rb +3 -3
  20. data/lib/puppet-strings/version.rb +1 -1
  21. data/lib/puppet-strings/yard/code_objects/base.rb +2 -2
  22. data/lib/puppet-strings/yard/code_objects/class.rb +1 -2
  23. data/lib/puppet-strings/yard/code_objects/data_type.rb +2 -2
  24. data/lib/puppet-strings/yard/code_objects/defined_type.rb +1 -2
  25. data/lib/puppet-strings/yard/code_objects/function.rb +6 -6
  26. data/lib/puppet-strings/yard/code_objects/plan.rb +1 -2
  27. data/lib/puppet-strings/yard/code_objects/type.rb +6 -6
  28. data/lib/puppet-strings/yard/handlers/helpers.rb +1 -0
  29. data/lib/puppet-strings/yard/handlers/json/task_handler.rb +1 -0
  30. data/lib/puppet-strings/yard/handlers/puppet/base.rb +3 -3
  31. data/lib/puppet-strings/yard/handlers/ruby/base.rb +2 -2
  32. data/lib/puppet-strings/yard/handlers/ruby/data_type_handler.rb +5 -9
  33. data/lib/puppet-strings/yard/handlers/ruby/function_handler.rb +33 -32
  34. data/lib/puppet-strings/yard/handlers/ruby/provider_handler.rb +1 -1
  35. data/lib/puppet-strings/yard/handlers/ruby/rsapi_handler.rb +4 -4
  36. data/lib/puppet-strings/yard/handlers/ruby/type_base.rb +3 -0
  37. data/lib/puppet-strings/yard/handlers/ruby/type_handler.rb +6 -5
  38. data/lib/puppet-strings/yard/parsers/json/parser.rb +1 -1
  39. data/lib/puppet-strings/yard/parsers/puppet/parser.rb +0 -6
  40. data/lib/puppet-strings/yard/parsers/puppet/statement.rb +12 -20
  41. data/lib/puppet-strings/yard/tags/overload_tag.rb +4 -4
  42. data/lib/puppet-strings/yard/tags/parameter_directive.rb +1 -1
  43. data/lib/puppet-strings/yard/tags/property_directive.rb +1 -1
  44. data/lib/puppet-strings/yard/templates/default/fulldoc/html/setup.rb +11 -9
  45. data/lib/puppet-strings/yard/templates/default/layout/html/setup.rb +16 -14
  46. data/lib/puppet-strings/yard/templates/default/puppet_class/html/deprecated.erb +6 -0
  47. data/lib/puppet-strings/yard/templates/default/puppet_class/html/setup.rb +5 -3
  48. data/lib/puppet-strings/yard/templates/default/puppet_data_type/html/deprecated.erb +6 -0
  49. data/lib/puppet-strings/yard/templates/default/puppet_data_type/html/setup.rb +4 -2
  50. data/lib/puppet-strings/yard/templates/default/puppet_data_type_alias/html/deprecated.erb +6 -0
  51. data/lib/puppet-strings/yard/templates/default/puppet_data_type_alias/html/setup.rb +5 -3
  52. data/lib/puppet-strings/yard/templates/default/puppet_defined_type/html/deprecated.erb +6 -0
  53. data/lib/puppet-strings/yard/templates/default/puppet_defined_type/html/setup.rb +3 -1
  54. data/lib/puppet-strings/yard/templates/default/puppet_function/html/deprecated.erb +6 -0
  55. data/lib/puppet-strings/yard/templates/default/puppet_function/html/setup.rb +3 -1
  56. data/lib/puppet-strings/yard/templates/default/puppet_plan/html/deprecated.erb +6 -0
  57. data/lib/puppet-strings/yard/templates/default/puppet_plan/html/setup.rb +3 -1
  58. data/lib/puppet-strings/yard/templates/default/puppet_provider/html/setup.rb +2 -0
  59. data/lib/puppet-strings/yard/templates/default/puppet_task/html/setup.rb +2 -0
  60. data/lib/puppet-strings/yard/templates/default/puppet_type/html/deprecated.erb +6 -0
  61. data/lib/puppet-strings/yard/templates/default/puppet_type/html/setup.rb +5 -3
  62. data/lib/puppet-strings/yard/templates/default/tags/setup.rb +3 -1
  63. data/lib/puppet-strings/yard/util.rb +3 -5
  64. data/lib/puppet-strings/yard.rb +1 -1
  65. data/lib/puppet-strings.rb +3 -8
  66. metadata +16 -11
  67. data/COMMITTERS.md +0 -185
@@ -8,17 +8,17 @@ require 'puppet-strings/yard/util'
8
8
  # Implements the handler for Puppet functions written in Ruby.
9
9
  class PuppetStrings::Yard::Handlers::Ruby::FunctionHandler < PuppetStrings::Yard::Handlers::Ruby::Base
10
10
  # Represents the list of Puppet 4.x function API methods to support.
11
- DISPATCH_METHOD_NAMES = [
12
- 'param',
13
- 'required_param',
14
- 'optional_param',
15
- 'repeated_param',
16
- 'optional_repeated_param',
17
- 'required_repeated_param',
18
- 'block_param',
19
- 'required_block_param',
20
- 'optional_block_param',
21
- 'return_type',
11
+ DISPATCH_METHOD_NAMES = %w[
12
+ param
13
+ required_param
14
+ optional_param
15
+ repeated_param
16
+ optional_repeated_param
17
+ required_repeated_param
18
+ block_param
19
+ required_block_param
20
+ optional_block_param
21
+ return_type
22
22
  ].freeze
23
23
 
24
24
  namespace_only
@@ -39,7 +39,7 @@ class PuppetStrings::Yard::Handlers::Ruby::FunctionHandler < PuppetStrings::Yard
39
39
  is_3x = ['Puppet::Parser::Functions', 'newfunction'].include?(module_name)
40
40
  object = PuppetStrings::Yard::CodeObjects::Function.new(
41
41
  get_name(statement, 'Puppet::Functions.create_function'),
42
- is_3x ? PuppetStrings::Yard::CodeObjects::Function::RUBY_3X : PuppetStrings::Yard::CodeObjects::Function::RUBY_4X,
42
+ is_3x ? PuppetStrings::Yard::CodeObjects::Function::RUBY_3X : PuppetStrings::Yard::CodeObjects::Function::RUBY_4X
43
43
  )
44
44
  object.source = statement
45
45
  register object
@@ -76,21 +76,21 @@ class PuppetStrings::Yard::Handlers::Ruby::FunctionHandler < PuppetStrings::Yard
76
76
  log.warn "Missing documentation for Puppet function '#{object.name}' at #{statement.file}:#{statement.line}." if object.docstring.empty? && object.tags.empty?
77
77
 
78
78
  unless object.tags(:param).empty?
79
- log.warn "The docstring for Puppet 4.x function '#{object.name}' "\
80
- "contains @param tags near #{object.file}:#{object.line}: parameter "\
81
- 'documentation should be made on the dispatch call.'
79
+ log.warn "The docstring for Puppet 4.x function '#{object.name}' " \
80
+ "contains @param tags near #{object.file}:#{object.line}: parameter " \
81
+ 'documentation should be made on the dispatch call.'
82
82
  end
83
83
 
84
84
  unless object.tags(:return).empty?
85
- log.warn "The docstring for Puppet 4.x function '#{object.name}' "\
86
- "contains @return tags near #{object.file}:#{object.line}: return "\
87
- 'value documentation should be made on the dispatch call.'
85
+ log.warn "The docstring for Puppet 4.x function '#{object.name}' " \
86
+ "contains @return tags near #{object.file}:#{object.line}: return " \
87
+ 'value documentation should be made on the dispatch call.'
88
88
  end
89
89
 
90
90
  unless object.tags(:overload).empty?
91
- log.warn "The docstring for Puppet 4.x function '#{object.name}' "\
92
- "contains @overload tags near #{object.file}:#{object.line}: overload "\
93
- 'tags are automatically generated from the dispatch calls.'
91
+ log.warn "The docstring for Puppet 4.x function '#{object.name}' " \
92
+ "contains @overload tags near #{object.file}:#{object.line}: overload " \
93
+ 'tags are automatically generated from the dispatch calls.'
94
94
  end
95
95
 
96
96
  # Delete any existing param/return/overload tags
@@ -123,6 +123,7 @@ class PuppetStrings::Yard::Handlers::Ruby::FunctionHandler < PuppetStrings::Yard
123
123
 
124
124
  # If there's only one overload, move the tags to the object itself
125
125
  return unless overloads.length == 1
126
+
126
127
  overload = overloads.first
127
128
  object.parameters = overload.parameters
128
129
  object.add_tag(*overload.tags)
@@ -184,7 +185,7 @@ class PuppetStrings::Yard::Handlers::Ruby::FunctionHandler < PuppetStrings::Yard
184
185
  node_as_string(parameters[0]),
185
186
  nil, # TODO: determine default from corresponding Ruby method signature?
186
187
  method_name.include?('optional'),
187
- method_name.include?('repeated'),
188
+ method_name.include?('repeated')
188
189
  )
189
190
  end
190
191
 
@@ -215,7 +216,7 @@ class PuppetStrings::Yard::Handlers::Ruby::FunctionHandler < PuppetStrings::Yard
215
216
  nil, # TODO: determine default from corresponding Ruby method signature?
216
217
  block.method_name.source.include?('optional'),
217
218
  false, # Not repeated
218
- true, # Is block
219
+ true # Is block
219
220
  )
220
221
  end
221
222
  end
@@ -243,7 +244,7 @@ class PuppetStrings::Yard::Handlers::Ruby::FunctionHandler < PuppetStrings::Yard
243
244
  param_tags,
244
245
  parameter.source,
245
246
  parameter.file,
246
- parameter.line,
247
+ parameter.line
247
248
  )
248
249
  end
249
250
 
@@ -258,7 +259,7 @@ class PuppetStrings::Yard::Handlers::Ruby::FunctionHandler < PuppetStrings::Yard
258
259
  parameter.line,
259
260
  nil,
260
261
  parameter[1].source,
261
- true,
262
+ true
262
263
  )
263
264
  end
264
265
 
@@ -274,7 +275,7 @@ class PuppetStrings::Yard::Handlers::Ruby::FunctionHandler < PuppetStrings::Yard
274
275
  nil,
275
276
  nil,
276
277
  false,
277
- true,
278
+ true
278
279
  )
279
280
  end
280
281
 
@@ -291,7 +292,7 @@ class PuppetStrings::Yard::Handlers::Ruby::FunctionHandler < PuppetStrings::Yard
291
292
  nil,
292
293
  false,
293
294
  false,
294
- true,
295
+ true
295
296
  )
296
297
  end
297
298
 
@@ -309,15 +310,15 @@ class PuppetStrings::Yard::Handlers::Ruby::FunctionHandler < PuppetStrings::Yard
309
310
  log.warn "Missing @param tag for parameter '#{name}' near #{file}:#{line}." unless tag || object.docstring.all.empty?
310
311
 
311
312
  if type && tag && tag.types && !tag.types.empty?
312
- log.warn "The @param tag for parameter '#{name}' should not contain a "\
313
- "type specification near #{file}:#{line}: ignoring in favor of "\
314
- 'dispatch type information.'
313
+ log.warn "The @param tag for parameter '#{name}' should not contain a " \
314
+ "type specification near #{file}:#{line}: ignoring in favor of " \
315
+ 'dispatch type information.'
315
316
  end
316
317
 
317
318
  if repeated
318
- name = '*' + name
319
+ name = "*#{name}"
319
320
  elsif block
320
- name = '&' + name
321
+ name = "&#{name}"
321
322
  end
322
323
 
323
324
  type ||= tag&.types ? tag.type : 'Any'
@@ -94,7 +94,7 @@ class PuppetStrings::Yard::Handlers::Ruby::ProviderHandler < PuppetStrings::Yard
94
94
 
95
95
  object.add_confine(node_as_string(kvp[0]) || kvp[0].source, node_as_string(kvp[1]) || kvp[1].source)
96
96
  end
97
- elsif ['has_feature', 'has_features'].include?(method_name)
97
+ elsif %w[has_feature has_features].include?(method_name)
98
98
  # Add the features to the object
99
99
  parameters.each do |parameter|
100
100
  object.add_feature(node_as_string(parameter) || parameter.source)
@@ -53,9 +53,9 @@ class PuppetStrings::Yard::Handlers::Ruby::RsapiHandler < PuppetStrings::Yard::H
53
53
  # check that the params of the register_type call are key/value pairs.
54
54
  def kv_arg_list?(params)
55
55
  params.type == :list &&
56
- params.children.count > 0 &&
56
+ params.children.count.positive? &&
57
57
  params.children.first.type == :list &&
58
- params.children.first.children.count > 0 &&
58
+ params.children.first.children.count.positive? &&
59
59
  statement.parameters.children.first.children.first.type == :assoc
60
60
  end
61
61
 
@@ -101,7 +101,7 @@ class PuppetStrings::Yard::Handlers::Ruby::RsapiHandler < PuppetStrings::Yard::H
101
101
  kv_pairs = node.children.map do |assoc|
102
102
  [value_from_node(assoc.children[0]), value_from_node(assoc.children[1])]
103
103
  end
104
- Hash[kv_pairs]
104
+ kv_pairs.to_h
105
105
  end
106
106
 
107
107
  def var_ref_from_node(node)
@@ -129,7 +129,7 @@ class PuppetStrings::Yard::Handlers::Ruby::RsapiHandler < PuppetStrings::Yard::H
129
129
 
130
130
  schema['attributes'].each do |name, definition|
131
131
  # puts "Processing #{name}: #{definition.inspect}"
132
- if ['parameter', 'namevar'].include? definition['behaviour']
132
+ if %w[parameter namevar].include? definition['behaviour']
133
133
  object.add_parameter(create_parameter(name, definition))
134
134
  else
135
135
  object.add_property(create_property(name, definition))
@@ -110,15 +110,18 @@ class PuppetStrings::Yard::Handlers::Ruby::TypeBase < PuppetStrings::Yard::Handl
110
110
  return unless object.is_a? PuppetStrings::Yard::CodeObjects::Type::Parameter
111
111
  # Process the options for parameter base types
112
112
  return unless parameters.count >= 2
113
+
113
114
  parameters[1].each do |kvp|
114
115
  next unless kvp.count == 2
115
116
  next unless node_as_string(kvp[0]) == 'parent'
116
117
 
117
118
  if kvp[1].source == 'Puppet::Parameter::Boolean'
119
+ # rubocop:disable Performance/InefficientHashSearch
118
120
  object.add('true') unless object.values.include? 'true'
119
121
  object.add('false') unless object.values.include? 'false'
120
122
  object.add('yes') unless object.values.include? 'yes'
121
123
  object.add('no') unless object.values.include? 'no'
124
+ # rubocop:enable Performance/InefficientHashSearch
122
125
  end
123
126
  break
124
127
  end
@@ -52,7 +52,8 @@ class PuppetStrings::Yard::Handlers::Ruby::TypeHandler < PuppetStrings::Yard::Ha
52
52
  method_name = node.method_name.source
53
53
  parameters = node.parameters(false)
54
54
 
55
- if method_name == 'newproperty'
55
+ case method_name
56
+ when 'newproperty'
56
57
  # Add a property to the object
57
58
  next unless parameters.count >= 1
58
59
 
@@ -60,7 +61,7 @@ class PuppetStrings::Yard::Handlers::Ruby::TypeHandler < PuppetStrings::Yard::Ha
60
61
  next unless name
61
62
 
62
63
  object.add_property(create_property(name, node))
63
- elsif method_name == 'newparam'
64
+ when 'newparam'
64
65
  # Add a parameter to the object
65
66
  next unless parameters.count >= 1
66
67
 
@@ -68,7 +69,7 @@ class PuppetStrings::Yard::Handlers::Ruby::TypeHandler < PuppetStrings::Yard::Ha
68
69
  next unless name
69
70
 
70
71
  object.add_parameter(create_parameter(name, node))
71
- elsif method_name == 'newcheck'
72
+ when 'newcheck'
72
73
  # Add a check to the object
73
74
  next unless parameters.count >= 1
74
75
 
@@ -76,7 +77,7 @@ class PuppetStrings::Yard::Handlers::Ruby::TypeHandler < PuppetStrings::Yard::Ha
76
77
  next unless name
77
78
 
78
79
  object.add_check(create_check(name, node))
79
- elsif method_name == 'feature'
80
+ when 'feature'
80
81
  # Add a feature to the object
81
82
  next unless parameters.count >= 2
82
83
 
@@ -87,7 +88,7 @@ class PuppetStrings::Yard::Handlers::Ruby::TypeHandler < PuppetStrings::Yard::Ha
87
88
  next unless docstring
88
89
 
89
90
  object.add_feature(PuppetStrings::Yard::CodeObjects::Type::Feature.new(name, docstring))
90
- elsif method_name == 'ensurable'
91
+ when 'ensurable'
91
92
  if node.block
92
93
  property = create_property('ensure', node)
93
94
  property.docstring = DEFAULT_ENSURABLE_DOCSTRING if property.docstring.empty?
@@ -28,7 +28,7 @@ class PuppetStrings::Yard::Parsers::JSON::Parser < YARD::Parser::Base
28
28
  # TODO: this should compare json to a Task metadata json-schema or perform some other hueristics
29
29
  # to determine what type of statement it represents
30
30
  @statements.push(PuppetStrings::Yard::Parsers::JSON::TaskStatement.new(json, @source, @file)) unless json.empty?
31
- rescue
31
+ rescue StandardError
32
32
  log.error "Failed to parse #{@file}: "
33
33
  @statements = []
34
34
  end
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # rubocop:disable Naming/MethodName
4
-
5
3
  require 'puppet'
6
4
  require 'puppet/pops'
7
5
  require 'puppet-strings/yard/parsers/puppet/statement'
@@ -24,10 +22,6 @@ class PuppetStrings::Yard::Parsers::Puppet::Parser < YARD::Parser::Base
24
22
  # @return [void]
25
23
  def parse
26
24
  begin
27
- if @file.to_s.match?(%r{^plans|/plans/}) && Puppet::Util::Package.versioncmp(Puppet.version, '5.0.0') < 0
28
- log.warn "Skipping #{@file}: Puppet Plans require Puppet 5 or greater."
29
- return
30
- end
31
25
  Puppet[:tasks] = true if Puppet.settings.include?(:tasks)
32
26
  @statements ||= (@visitor.visit(::Puppet::Pops::Parser::Parser.new.parse_string(source)) || []).compact
33
27
  rescue ::Puppet::ParseError => e
@@ -7,13 +7,9 @@ module PuppetStrings::Yard::Parsers::Puppet
7
7
  # Represents the base Puppet language statement.
8
8
  class Statement
9
9
  # The pattern for parsing docstring comments.
10
- COMMENT_REGEX = %r{^\s*#+\s?}.freeze
10
+ COMMENT_REGEX = /^\s*#+\s?/.freeze
11
11
 
12
- attr_reader :source
13
- attr_reader :file
14
- attr_reader :line
15
- attr_reader :docstring
16
- attr_reader :comments_range
12
+ attr_reader :source, :file, :line, :docstring, :comments_range
17
13
 
18
14
  # Initializes the Puppet language statement.
19
15
  # @param object The Puppet parser model object for the statement.
@@ -67,7 +63,7 @@ module PuppetStrings::Yard::Parsers::Puppet
67
63
  private
68
64
 
69
65
  def first_line
70
- @source.split(%r{\r?\n}).first.strip
66
+ @source.split(/\r?\n/).first.strip
71
67
  end
72
68
  end
73
69
 
@@ -75,20 +71,17 @@ module PuppetStrings::Yard::Parsers::Puppet
75
71
  class ParameterizedStatement < Statement
76
72
  # Implements a parameter for a parameterized statement.
77
73
  class Parameter
78
- attr_reader :name
79
- attr_reader :type
80
- attr_reader :value
74
+ attr_reader :name, :type, :value
81
75
 
82
76
  # Initializes the parameter.
83
77
  # @param [Puppet::Pops::Model::Parameter] parameter The parameter model object.
84
78
  def initialize(parameter)
85
79
  @name = parameter.name
86
80
  # Take the exact text for the type expression
87
- if parameter.type_expr
88
- @type = PuppetStrings::Yard::Util.ast_to_text(parameter.type_expr)
89
- end
81
+ @type = PuppetStrings::Yard::Util.ast_to_text(parameter.type_expr) if parameter.type_expr
90
82
  # Take the exact text for the default value expression
91
83
  return unless parameter.value
84
+
92
85
  @value = PuppetStrings::Yard::Util.ast_to_text(parameter.value)
93
86
  end
94
87
  end
@@ -106,8 +99,7 @@ module PuppetStrings::Yard::Parsers::Puppet
106
99
 
107
100
  # Implements the Puppet class statement.
108
101
  class ClassStatement < ParameterizedStatement
109
- attr_reader :name
110
- attr_reader :parent_class
102
+ attr_reader :name, :parent_class
111
103
 
112
104
  # Initializes the Puppet class statement.
113
105
  # @param [Puppet::Pops::Model::HostClassDefinition] object The model object for the class statement.
@@ -134,8 +126,7 @@ module PuppetStrings::Yard::Parsers::Puppet
134
126
 
135
127
  # Implements the Puppet function statement.
136
128
  class FunctionStatement < ParameterizedStatement
137
- attr_reader :name
138
- attr_reader :type
129
+ attr_reader :name, :type
139
130
 
140
131
  # Initializes the Puppet function statement.
141
132
  # @param [Puppet::Pops::Model::FunctionDefinition] object The model object for the function statement.
@@ -144,8 +135,10 @@ module PuppetStrings::Yard::Parsers::Puppet
144
135
  super(object, file)
145
136
  @name = object.name
146
137
  return unless object.respond_to? :return_type
138
+
147
139
  type = object.return_type
148
140
  return unless type
141
+
149
142
  @type = PuppetStrings::Yard::Util.ast_to_text(type).gsub('>> ', '')
150
143
  end
151
144
  end
@@ -165,8 +158,7 @@ module PuppetStrings::Yard::Parsers::Puppet
165
158
 
166
159
  # Implements the Puppet data type alias statement.
167
160
  class DataTypeAliasStatement < Statement
168
- attr_reader :name
169
- attr_reader :alias_of
161
+ attr_reader :name, :alias_of
170
162
 
171
163
  # Initializes the Puppet data type alias statement.
172
164
  # @param [Puppet::Pops::Model::TypeAlias] object The model object for the type statement.
@@ -178,7 +170,7 @@ module PuppetStrings::Yard::Parsers::Puppet
178
170
  case type_expr
179
171
  when Puppet::Pops::Model::AccessExpression
180
172
  # TODO: I don't like rebuilding the source from the AST, but AccessExpressions don't expose the original source
181
- @alias_of = PuppetStrings::Yard::Util.ast_to_text(type_expr.left_expr) + '['
173
+ @alias_of = +"#{PuppetStrings::Yard::Util.ast_to_text(type_expr.left_expr)}[" # alias_of should be mutable so we add a + to the string.
182
174
  @alias_of << type_expr.keys.map { |key| PuppetStrings::Yard::Util.ast_to_text(key) }.join(', ')
183
175
  @alias_of << ']'
184
176
  else
@@ -21,16 +21,16 @@ class PuppetStrings::Yard::Tags::OverloadTag < YARD::Tags::Tag
21
21
  # @return [String] Returns the signature of the overload.
22
22
  def signature
23
23
  tags = self.tags(:param)
24
- args = @parameters.map { |parameter|
24
+ args = @parameters.map do |parameter|
25
25
  name, default = parameter
26
26
  tag = tags.find { |t| t.name == name } if tags
27
27
  type = tag&.types ? "#{tag.type} " : 'Any '
28
28
  prefix = (name[0]).to_s if name.start_with?('*', '&')
29
- name = name[1..-1] if prefix
29
+ name = name[1..] if prefix
30
30
  default = " = #{default}" if default
31
31
  "#{type}#{prefix}$#{name}#{default}"
32
- }.join(', ')
33
- @name + '(' + args + ')'
32
+ end.join(', ')
33
+ "#{@name}(#{args})"
34
34
  end
35
35
 
36
36
  # Adds a tag to the overload's docstring.
@@ -7,7 +7,7 @@ class PuppetStrings::Yard::Tags::ParameterDirective < YARD::Tags::Directive
7
7
  # Called to invoke the directive.
8
8
  # @return [void]
9
9
  def call
10
- return unless object&.respond_to?(:add_parameter)
10
+ return unless object.respond_to?(:add_parameter)
11
11
 
12
12
  # Add a parameter to the resource
13
13
  parameter = PuppetStrings::Yard::CodeObjects::Type::Parameter.new(tag.name, tag.text)
@@ -7,7 +7,7 @@ class PuppetStrings::Yard::Tags::PropertyDirective < YARD::Tags::Directive
7
7
  # Called to invoke the directive.
8
8
  # @return [void]
9
9
  def call
10
- return unless object&.respond_to?(:add_property)
10
+ return unless object.respond_to?(:add_property)
11
11
 
12
12
  # Add a property to the resource
13
13
  property = PuppetStrings::Yard::CodeObjects::Type::Property.new(tag.name, tag.text)
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Generates the searchable Puppet class list.
2
4
  # @return [void]
3
5
  def generate_puppet_class_list
@@ -10,7 +12,7 @@ end
10
12
  # Generates the searchable Puppet data type list.
11
13
  # @return [void]
12
14
  def generate_puppet_data_type_list
13
- @items = Registry.all(:puppet_data_type, :puppet_data_type_alias).sort_by {|dt| dt.name.to_s }
15
+ @items = Registry.all(:puppet_data_type, :puppet_data_type_alias).sort_by { |dt| dt.name.to_s }
14
16
  @list_title = 'Data Type List'
15
17
  @list_type = 'puppet_data_type'
16
18
  generate_list_contents
@@ -19,7 +21,7 @@ end
19
21
  # Generates the searchable Puppet defined type list.
20
22
  # @return [void]
21
23
  def generate_puppet_defined_type_list
22
- @items = Registry.all(:puppet_defined_type).sort_by {|dt| dt.name.to_s }
24
+ @items = Registry.all(:puppet_defined_type).sort_by { |dt| dt.name.to_s }
23
25
  @list_title = 'Defined Type List'
24
26
  @list_type = 'puppet_defined_type'
25
27
  generate_list_contents
@@ -28,7 +30,7 @@ end
28
30
  # Generates the searchable Puppet resource type list.
29
31
  # @return [void]
30
32
  def generate_puppet_type_list
31
- @items = Registry.all(:puppet_type).sort_by {|t| t.name.to_s }
33
+ @items = Registry.all(:puppet_type).sort_by { |t| t.name.to_s }
32
34
  @list_title = 'Resource Type List'
33
35
  @list_type = 'puppet_type'
34
36
  generate_list_contents
@@ -37,7 +39,7 @@ end
37
39
  # Generates the searchable Puppet provider list.
38
40
  # @return [void]
39
41
  def generate_puppet_provider_list
40
- @items = Registry.all(:puppet_provider).sort_by {|p| p.name.to_s }
42
+ @items = Registry.all(:puppet_provider).sort_by { |p| p.name.to_s }
41
43
  @list_title = 'Provider List'
42
44
  @list_type = 'puppet_provider'
43
45
  generate_list_contents
@@ -46,7 +48,7 @@ end
46
48
  # Generates the searchable Puppet function list.
47
49
  # @return [void]
48
50
  def generate_puppet_function_list
49
- @items = Registry.all(:puppet_function).sort_by {|f| f.name.to_s }
51
+ @items = Registry.all(:puppet_function).sort_by { |f| f.name.to_s }
50
52
  @list_title = 'Puppet Function List'
51
53
  @list_type = 'puppet_function'
52
54
  generate_list_contents
@@ -56,8 +58,8 @@ end
56
58
  # @return [void]
57
59
  def generate_method_list
58
60
  @items = prune_method_listing(Registry.all(:method), false)
59
- @items = @items.reject {|m| m.name.to_s =~ /=$/ && m.is_attribute? }
60
- @items = @items.sort_by {|m| m.name.to_s }
61
+ @items = @items.reject { |m| m.name.to_s =~ /=$/ && m.is_attribute? }
62
+ @items = @items.sort_by { |m| m.name.to_s }
61
63
  @list_title = 'Ruby Method List'
62
64
  @list_type = 'method'
63
65
  generate_list_contents
@@ -75,7 +77,7 @@ end
75
77
  # Generates the searchable Puppet Task list.
76
78
  # @return [void]
77
79
  def generate_puppet_task_list
78
- @items = Registry.all(:puppet_task).sort_by {|t| t.name.to_s }
80
+ @items = Registry.all(:puppet_task).sort_by { |t| t.name.to_s }
79
81
  @list_title = 'Puppet Task List'
80
82
  @list_type = 'puppet_task'
81
83
  generate_list_contents
@@ -84,7 +86,7 @@ end
84
86
  # Generates the searchable Puppet Plan list.
85
87
  # @return [void]
86
88
  def generate_puppet_plan_list
87
- @items = Registry.all(:puppet_plan).sort_by {|t| t.name.to_s }
89
+ @items = Registry.all(:puppet_plan).sort_by { |t| t.name.to_s }
88
90
  @list_title = 'Puppet Plan List'
89
91
  @list_type = 'puppet_plan'
90
92
  generate_list_contents
@@ -1,10 +1,12 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Initializes the template.
2
4
  # @return [void]
3
5
  def init
4
6
  case object
5
7
  when '_index.html'
6
8
  @page_title = options.title
7
- sections :layout, [:index, [:listing, [:classes, :data_types, :defined_types, :types, :providers, :functions, :tasks, :plans, :files, :objects]]]
9
+ sections :layout, [:index, [:listing, %i[classes data_types defined_types types providers functions tasks plans files objects]]]
8
10
  else
9
11
  super
10
12
  end
@@ -64,9 +66,7 @@ def layout
64
66
 
65
67
  final_layout = erb(:layout)
66
68
 
67
- if @file && @file.name == 'README'
68
- PuppetStrings::Yard::Util.github_to_yard_links(final_layout)
69
- end
69
+ PuppetStrings::Yard::Util.github_to_yard_links(final_layout) if @file && @file.name == 'README'
70
70
 
71
71
  final_layout
72
72
  end
@@ -83,12 +83,12 @@ def create_menu_lists
83
83
  {
84
84
  type: 'puppet_data_type',
85
85
  title: 'Data Types',
86
- search_title: 'Data Types',
86
+ search_title: 'Data Types'
87
87
  },
88
88
  {
89
89
  type: 'puppet_defined_type',
90
90
  title: 'Defined Types',
91
- search_title: 'Defined Types',
91
+ search_title: 'Defined Types'
92
92
  },
93
93
  {
94
94
  type: 'puppet_type',
@@ -124,17 +124,19 @@ def create_menu_lists
124
124
  type: 'method',
125
125
  title: 'Ruby Methods',
126
126
  search_title: 'Method List'
127
- },
127
+ }
128
128
  ]
129
129
 
130
130
  menu_lists.delete_if { |e| YARD::Registry.all(e[:type].intern).empty? }
131
131
 
132
132
  # We must always return at least one group, so always keep the files list
133
- menu_lists << {
134
- type: 'file',
135
- title: 'Files',
136
- search_title: 'File List'
137
- } if menu_lists.empty? || !YARD::Registry.all(:file).empty?
133
+ if menu_lists.empty? || !YARD::Registry.all(:file).empty?
134
+ menu_lists << {
135
+ type: 'file',
136
+ title: 'Files',
137
+ search_title: 'File List'
138
+ }
139
+ end
138
140
 
139
141
  menu_lists
140
142
  end
@@ -150,9 +152,9 @@ end
150
152
  # @return [Hash] Returns a hash of first letter of the object name to list of objects.
151
153
  def objects_by_letter(*types)
152
154
  hash = {}
153
- objects = Registry.all(*types).sort_by {|o| o.name.to_s }
155
+ objects = Registry.all(*types).sort_by { |o| o.name.to_s }
154
156
  objects = run_verifier(objects)
155
- objects.each {|o| (hash[o.name.to_s[0,1].upcase] ||= []) << o }
157
+ objects.each { |o| (hash[o.name.to_s[0, 1].upcase] ||= []) << o }
156
158
  hash
157
159
  end
158
160
 
@@ -0,0 +1,6 @@
1
+ <% object.tags(:deprecated).each do |tag| %>
2
+ <div class="note deprecated">
3
+ <strong>DEPRECATED:</strong>
4
+ <%= htmlify_line deprecated.text %>
5
+ </div>
6
+ <% end %>
@@ -1,14 +1,16 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Initializes the template.
2
4
  # @return [void]
3
5
  def init
4
- sections :header, :box_info, :summary, :overview, :note, :todo, T('tags'), :source
6
+ sections :header, :box_info, :summary, :overview, :note, :todo, :deprecated, T('tags'), :source
5
7
  end
6
8
 
7
9
  # Renders the box_info section.
8
10
  # @return [String] Returns the rendered section.
9
11
  def box_info
10
- @subclasses = Registry.all(:puppet_class).find_all { |c|
12
+ @subclasses = Registry.all(:puppet_class).find_all do |c|
11
13
  c.statement.parent_class == object.name.to_s
12
- }
14
+ end
13
15
  erb(:box_info)
14
16
  end
@@ -0,0 +1,6 @@
1
+ <% object.tags(:deprecated).each do |tag| %>
2
+ <div class="note deprecated">
3
+ <strong>DEPRECATED:</strong>
4
+ <%= htmlify_line deprecated.text %>
5
+ </div>
6
+ <% end %>
@@ -1,7 +1,9 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Initializes the template.
2
4
  # @return [void]
3
5
  def init
4
- sections :header, :box_info, :summary, :overview, :note, :todo, T('tags'), :method_details_list, [T('method_details')], :source
6
+ sections :header, :box_info, :summary, :overview, :note, :todo, :deprecated, T('tags'), :method_details_list, [T('method_details')], :source
5
7
  end
6
8
 
7
9
  def method_listing
@@ -9,5 +11,5 @@ def method_listing
9
11
  end
10
12
 
11
13
  def sort_listing(list)
12
- list.sort_by {|o| [o.scope.to_s, o.name.to_s.downcase] }
14
+ list.sort_by { |o| [o.scope.to_s, o.name.to_s.downcase] }
13
15
  end
@@ -0,0 +1,6 @@
1
+ <% object.tags(:deprecated).each do |tag| %>
2
+ <div class="note deprecated">
3
+ <strong>DEPRECATED:</strong>
4
+ <%= htmlify_line deprecated.text %>
5
+ </div>
6
+ <% end %>
@@ -1,7 +1,9 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Initializes the template.
2
4
  # @return [void]
3
5
  def init
4
- sections :header, :box_info, :summary, :overview, :alias_of, :note, :todo, T('tags'), :source
6
+ sections :header, :box_info, :summary, :overview, :alias_of, :note, :todo, :deprecated, T('tags'), :source
5
7
  end
6
8
 
7
9
  # Renders the alias_of section.
@@ -9,8 +11,8 @@ end
9
11
  def alias_of
10
12
  # Properties are the same thing as parameters (from the documentation standpoint),
11
13
  # so reuse the same template but with a different title and data source.
12
- #@parameters = object.properties || []
13
- #@parameters.sort_by! { |p| p.name }
14
+ # @parameters = object.properties || []
15
+ # @parameters.sort_by! { |p| p.name }
14
16
  @tag_title = 'Alias of'
15
17
  @alias_of = object.alias_of
16
18
  erb(:alias_of)