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

Included in:
Template
Defined in:
lib/yard/templates/helpers/method_helper.rb

Overview

Helper methods for method objects.

Instance Method Summary collapse

Instance Method Details

#format_args(object) ⇒ String

Returns formatted arguments for a method.

Returns:

  • (String)

    formatted arguments for a method



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/yard/templates/helpers/method_helper.rb', line 6

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

  unless params.empty?
    args = params.map {|n, v| v ? "#{n} = #{v}" : n.to_s }.join(", ")
    h("(#{args})")
  else
    ""
  end
end

#format_block(object) ⇒ String

Returns formatted block if one exists.

Returns:

  • (String)

    formatted block if one exists



32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/yard/templates/helpers/method_helper.rb', line 32

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 {|t| t.name }
  elsif object.has_tag?(:yield)
    return "{ ... }"
  else
    params = nil
  end

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

#format_code(object, show_lines = false) ⇒ String

Returns formats source of an object.

Returns:

  • (String)

    formats source of an object



54
55
56
57
58
59
60
61
62
# File 'lib/yard/templates/helpers/method_helper.rb', line 54

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 formats source code of a constant value.

Returns:

  • (String)

    formats source code of a constant value



65
66
67
68
69
# File 'lib/yard/templates/helpers/method_helper.rb', line 65

def format_constant(value)
  sp = value.split("\n").last[/^(\s+)/, 1]
  num = sp ? sp.size : 0
  html_syntax_highlight value.gsub(/^\s{#{num}}/, '')
end

#format_lines(object) ⇒ String

Returns formats line numbers for source code of an object.

Returns:

  • (String)

    formats line numbers for source code of an object



47
48
49
50
51
# File 'lib/yard/templates/helpers/method_helper.rb', line 47

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 formatted and linked return types for a method.

Returns:

  • (String)

    formatted and linked return types for a method



25
26
27
28
29
# File 'lib/yard/templates/helpers/method_helper.rb', line 25

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