Merge pull request #53 from iankronquist/fix-defined-function-crash

(PDOC-45) Puppet 4x functions handle unusual names
This commit is contained in:
Henrik Lindberg 2015-09-07 05:25:16 -07:00
commit eeeb89f565
2 changed files with 16 additions and 2 deletions

View File

@ -187,6 +187,7 @@ class Puppet4xFunctionHandler < YARD::Handlers::Ruby::Base
name = process_element(name)
name
end
@ -199,12 +200,12 @@ class Puppet4xFunctionHandler < YARD::Handlers::Ruby::Base
# @param ele [YARD::Parser::Ruby::AstNode]
# @return [String]
def process_element(ele)
ele = ele.jump(:ident, :string_content)
ele = ele.jump(:ident, :string_content, :tstring_content)
case ele.type
when :ident
ele.source
when :string_content
when :string_content, :tstring_content
source = ele.source
if HEREDOC_START.match(source)
process_heredoc(source)

View File

@ -173,4 +173,17 @@ describe PuppetX::PuppetLabs::Strings::YARD::Handlers::Puppet4xFunctionHandler d
RUBY
}.to output("").to_stdout_from_any_process
end
it "should parse unusually named functions" do
# This should not raise a ParseErrorWithIssue exceptoin
parse <<-RUBY
Puppet::Functions.create_function :'max' do
def max(num_a, num_b)
num_a >= num_b ? num_a : num_b
end
end
RUBY
end
end