diff --git a/lib/puppetx/puppetlabs/strings/yard/templates/default/html_helper.rb b/lib/puppetx/puppetlabs/strings/yard/templates/default/html_helper.rb index fed42cf..b9a4a58 100644 --- a/lib/puppetx/puppetlabs/strings/yard/templates/default/html_helper.rb +++ b/lib/puppetx/puppetlabs/strings/yard/templates/default/html_helper.rb @@ -22,6 +22,10 @@ class HTMLHelper params.each do |param| result << "
  • " + # Parameters which are documented in the comments but not + # present in the code itself are given the strike through + # styling in order to show the reader that they do not actually + # exist if !param[:exists?] result << "" end @@ -31,12 +35,19 @@ class HTMLHelper if param[:types] result << "(" << "" << param[:types].join(", ") << "" << ")" - else + # Don't bother with TBD since 3x functions will never have type info per parameter. + # However if the user does want to list a type for some reason that is still supported, + # we just don't want to suggest that they need to + elsif !param[:puppet_3_func] result << "(TBD)" end - result << "" + + result << "" # This is only relevant for manifests, not puppet functions + # This is due to the fact that the scope of a parameter (as illustrated by + # by it's fully qualified name) is not relevant for the parameters in puppet + # functions, but may be for components of a manifest (i.e. classes) unless param[:fq_name].nil? result << " => #{param[:fq_name]}" end diff --git a/lib/puppetx/puppetlabs/strings/yard/templates/default/puppetnamespace/setup.rb b/lib/puppetx/puppetlabs/strings/yard/templates/default/puppetnamespace/setup.rb index 3677e4a..054cee2 100644 --- a/lib/puppetx/puppetlabs/strings/yard/templates/default/puppetnamespace/setup.rb +++ b/lib/puppetx/puppetlabs/strings/yard/templates/default/puppetnamespace/setup.rb @@ -4,7 +4,7 @@ require File.join(File.dirname(__FILE__),'../html_helper') require File.join(File.dirname(__FILE__),'../template_helper') def init - sections :header, :box_info, :pre_docstring, T('docstring'), + sections :header, :box_info, :method_summary, [:item_summary], :method_details_list, [T('method_details')] @@ -13,6 +13,7 @@ def init end def header + # The list is expected to only contain one type of function if @methods[0]['puppet_4x_function'] @header_text = "Puppet 4 Functions" else @@ -26,7 +27,7 @@ def box_info @source_files = [] @methods.each do |method| - # extract the file name and line number for each method + # extract the file name and line number for each method file_name = method.files[0][0] line_number = method.files[0][1] diff --git a/lib/puppetx/puppetlabs/strings/yard/templates/default/template_helper.rb b/lib/puppetx/puppetlabs/strings/yard/templates/default/template_helper.rb index bba88d9..40cf94e 100644 --- a/lib/puppetx/puppetlabs/strings/yard/templates/default/template_helper.rb +++ b/lib/puppetx/puppetlabs/strings/yard/templates/default/template_helper.rb @@ -27,18 +27,19 @@ class TemplateHelper # # @param parameters [Array] parameter details obtained programmatically # @param tags_hash [Array] parameter details obtained from comments - # @param fq_name [Boolean] does this paramter have a fully qualified name? + # @param fq_name [Boolean] does this parameter have a fully qualified name? # - # @return [Hash] The relevant information about each parameter - # @option opts [String] :name The name of the parameter - # @option opts [String] :fq_name The fully qualified parameter name - # @option opts [String] :desc The description provided in the comment - # @options opts [Array] :types The parameter type(s) specified in the comment - # @options opts [Boolean] :exists? True only if the parameter exists in the documented logic and not just in a comment + # @return [Hash] The relevant information about each parameter with the following keys/values: + # {:name => [String] The name of the parameter + # :fq_name => [String] The fully qualified parameter name + # :desc => [String] The description provided in the comment + # :types => [Array] The parameter type(s) specified in the comment + # :exists => [Boolean] True only if the parameter exists in the documented logic and not just in a comment} def extract_param_details(parameters, tags_hash, fq_name = false) parameter_info = [] # Extract the information for parameters that actually exist + # as opposed to parameters that are defined only in the comments parameters.each do |param| if fq_name @@ -81,23 +82,24 @@ class TemplateHelper # Generates parameter information in situations where the information can only # come from YARD tags in the comments, not from the code itself. For now the only # use for this is 3x functions. In this case exists? will always be true since we - # cannot verify if the paramter exists in the code itself. We must trust the user + # cannot verify if the parameter exists in the code itself. We must trust the user # to provide information in the comments that is accurate. # # @param param_tags [Array] parameter details obtained from comments # - # @return [Hash] The relevant information about each parameter - # @option opts [String] :name The name of the parameter - # @option opts [String] :desc The description provided in the comment - # @options opts [Array] :types The parameter type(s) specified in the comment - # @options opts [Boolean] :exists? True only if the parameter exists in the documented logic and not just in a comment + # @return [Hash] The relevant information about each parameter with the following keys/values: + # {:name => [String] The name of the parameter + # :desc => [String] The description provided in the comment + # :types => [Array] The parameter type(s) specified in the comment + # :exists => [Boolean] True only if the parameter exists in the documented logic and not just in a comment + # :puppet_3_func => [Boolean] Are these parameters for a puppet 3 function? (relevant in HTML generation)} def comment_only_param_details(param_tags) return if param_tags.empty? parameter_info = [] param_tags.each do |tag| - parameter_info.push({:name => tag.name, :desc => tag.text, :types => tag.types, :exists? => true}) + parameter_info.push({:name => tag.name, :desc => tag.text, :types => tag.types, :exists? => true, :puppet_3_func => true}) end parameter_info