class HereDocHelper
Constants
- HEREDOC_START
Sometimes the YARD parser returns Heredoc strings that start with `<-` instead of `<<-`.
Public Instance Methods
is_heredoc?(str)
click to toggle source
# File lib/puppet_x/puppetlabs/strings/yard/handlers/heredoc_helper.rb, line 41 def is_heredoc?(str) HEREDOC_START.match(str) end
process_element(ele)
click to toggle source
Turns an entry in the method parameter list into a string.
@param ele [YARD::Parser::Ruby::AstNode] @return [String]
# File lib/puppet_x/puppetlabs/strings/yard/handlers/heredoc_helper.rb, line 49 def process_element(ele) ele = ele.jump(:ident, :string_content) case ele.type when :ident ele.source when :string_content source = ele.source if is_heredoc? source process_heredoc(source) else source end end end
process_heredoc(source)
click to toggle source
Cleans up and formats Heredoc contents parsed by YARD.
@param source [String] @return [String]
# File lib/puppet_x/puppetlabs/strings/yard/handlers/heredoc_helper.rb, line 69 def process_heredoc(source) source = source.lines.to_a # YARD adds a line of source context on either side of the Heredoc # contents. source.shift source.pop # This utility method normalizes indentation and trims whitespace. Puppet::Util::Docs.scrub(source.join) end
process_parameters(statement)
click to toggle source
Extracts the Puppet function name and options hash from the parsed definition.
@return [(String, Hash{String => String})]
# File lib/puppet_x/puppetlabs/strings/yard/handlers/heredoc_helper.rb, line 14 def process_parameters(statement) # Passing `false` to prameters excludes the block param from the returned # list. name, opts = statement.parameters(false).compact name = process_element(name) # Don't try to process options if we don't have any if !opts.nil? opts = opts.map do |tuple| # Jump down into the S-Expression that represents a hashrocket, `=>`, # and the values on either side of it. tuple.jump(:assoc).map{|e| process_element(e)} end options = Hash[opts] else options = {} end [name, options] end