diff --git a/lib/puppet_x/puppetlabs/strings/yard/handlers/puppet_4x_function_handler.rb b/lib/puppet_x/puppetlabs/strings/yard/handlers/puppet_4x_function_handler.rb index 46967fc..298c8da 100644 --- a/lib/puppet_x/puppetlabs/strings/yard/handlers/puppet_4x_function_handler.rb +++ b/lib/puppet_x/puppetlabs/strings/yard/handlers/puppet_4x_function_handler.rb @@ -30,8 +30,9 @@ class Puppet4xFunctionHandler < YARD::Handlers::Ruby::Base return [] if command.children.length < 2 or command.children[1].children.length < 2 type_specifier = command.children[1] # the parameter signature is the first child of the specifier and an - # identifier. Convert it to a string. - param_signature = type_specifier.children[0].source + # identifier. Jump to the content inside the quotes and convert it to a + # string. + param_signature = type_specifier.children[0].jump(:tstring_content).source # The parameter name is the second child of the specifier and a symbol. # convert it to a string. param_name_ident = type_specifier.jump :ident diff --git a/lib/puppet_x/puppetlabs/strings/yard/templates/default/template_helper.rb b/lib/puppet_x/puppetlabs/strings/yard/templates/default/template_helper.rb index 1f3608d..fab415b 100644 --- a/lib/puppet_x/puppetlabs/strings/yard/templates/default/template_helper.rb +++ b/lib/puppet_x/puppetlabs/strings/yard/templates/default/template_helper.rb @@ -118,7 +118,7 @@ class TemplateHelper function.keys.each do |key| if function[key].class == String begin - instantiated = type_parser.parse function[key].gsub(/'/, '').gsub(/"/, "") + instantiated = type_parser.parse function[key] rescue Puppet::ParseError # Likely the result of a malformed type next @@ -132,15 +132,15 @@ class TemplateHelper param_instantiated = type_parser.parse type if not type_calculator.assignable? instantiated, param_instantiated actual_types = object.type_info.map do |sig| - sig[key] - end + sig[key].to_s if sig[key] + end.compact # Get the locations where the object can be found. We only care about # the first one. locations = object.files warning = <<-EOS [warn]: @param tag types do not match the code. The #{param[:name]} parameter is declared as types #{param[:types]} in the docstring, - but the code specifies the types #{actual_types.inspect} + but the code specifies the types #{actual_types} EOS # If the locations aren't in the shape we expect then report that diff --git a/spec/unit/puppet_x/puppetlabs/strings/yard/host_class_handler_spec.rb b/spec/unit/puppet_x/puppetlabs/strings/yard/host_class_handler_spec.rb index 96e9186..c31e184 100644 --- a/spec/unit/puppet_x/puppetlabs/strings/yard/host_class_handler_spec.rb +++ b/spec/unit/puppet_x/puppetlabs/strings/yard/host_class_handler_spec.rb @@ -79,7 +79,7 @@ Puppet Types: 0 ( 0 undocumented) Puppet Providers: 0 ( 0 undocumented) 100.00% documented output - expected_stderr = "[warn]: @param tag types do not match the code. The ident\n parameter is declared as types [\"Float\"] in the docstring,\n but the code specifies the types [Puppet::Pops::Types::PStringType]\n in the file manifests/init.pp near line 2.\n" + expected_stderr = "[warn]: @param tag types do not match the code. The ident\n parameter is declared as types [\"Float\"] in the docstring,\n but the code specifies the types [\"String\"]\n in the file manifests/init.pp near line 2.\n" expect { expect {