123456789_123456789_123456789_123456789_123456789_

Module: YARD::Templates::Helpers::MethodHelper

Relationships & Source Files
Extension / Inclusion / Inheritance Descendants
Included In:
Defined in: lib/yard/templates/helpers/method_helper.rb

Overview

Helper methods for method objects.

Instance Method Summary

Instance Method Details

#format_args(object) ⇒ String

Returns:

  • (String)

    formatted arguments for a method

[ GitHub ]

  
# File 'lib/yard/templates/helpers/method_helper.rb', line 7

def format_args(object)
  return if object.parameters.nil?
  params = object.parameters
  if object.has_tag?(:yield) || object.has_tag?(:yieldparam)
    params.reject! do |param|
      param[0].to_s[0, 1] == "&" &&
        !object.tags(:param).any? {|t| t.name == param[0][1..-1] }
    end
  end

  if params.empty?
    ""
  else
    args = params.map do |n, v|
      v ? "#{n}#{n[-1, 1] == ':' ? '' : ' ='} #{v}" : n.to_s
    end.join(", ")
    h("(#{args})")
  end
end

#format_block(object) ⇒ String

Returns:

  • (String)

    formatted block if one exists

[ GitHub ]

  
# File 'lib/yard/templates/helpers/method_helper.rb', line 35

def format_block(object)
  if object.has_tag?(:yield) && object.tag(:yield).types
    params = object.tag(:yield).types
  elsif object.has_tag?(:yieldparam)
    params = object.tags(:yieldparam).map(&:name)
  elsif object.has_tag?(:yield)
    return "{ ... }"
  else
    params = nil
  end

  params ? h("{|" + params.join(", ") + "| ... }") : ""
end

#format_code(object, _show_lines = false) ⇒ String

Returns:

  • (String)

    formats source of an object

[ GitHub ]

  
# File 'lib/yard/templates/helpers/method_helper.rb', line 57

def format_code(object, _show_lines = false)
  i = -1
  lines = object.source.split(/\n/)
  longestline = (object.line + lines.size).to_s.length
  lines.map do |line|
    lineno = object.line + (i += 1)
    (" " * (longestline - lineno.to_s.length)) + lineno.to_s + "    " + line
  end.join("\n")
end

#format_constant(value) ⇒ String

Returns:

  • (String)

    formats source code of a constant value

[ GitHub ]

  
# File 'lib/yard/templates/helpers/method_helper.rb', line 68

def format_constant(value)
  # last can return nil, so default to empty string
  sp = value.split("\n").last || ""
  sp = sp[/^(\s+)/, 1]
  num = sp ? sp.size : 0
  html_syntax_highlight value.gsub(/^\s{#{num}}/, '')
end

#format_lines(object) ⇒ String

Returns:

  • (String)

    formats line numbers for source code of an object

[ GitHub ]

  
# File 'lib/yard/templates/helpers/method_helper.rb', line 50

def format_lines(object)
  return "" if object.source.nil? || object.line.nil?
  i = -1
  object.source.split(/\n/).map { object.line + (i += 1) }.join("\n")
end

#format_return_types(object) ⇒ String

Returns:

  • (String)

    formatted and linked return types for a method

[ GitHub ]

  
# File 'lib/yard/templates/helpers/method_helper.rb', line 28

def format_return_types(object)
  return unless object.has_tag?(:return) && object.tag(:return).types
  return if object.tag(:return).types.empty?
  format_types [object.tag(:return).types.first], false
end