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
-
#format_args(object) ⇒ String
Formatted arguments for a method.
-
#format_block(object) ⇒ String
Formatted block if one exists.
-
#format_code(object, show_lines = false) ⇒ String
Formats source of an object.
-
#format_constant(value) ⇒ String
Formats source code of a constant value.
-
#format_lines(object) ⇒ String
Formats line numbers for source code of an object.
-
#format_return_types(object) ⇒ String
Formatted and linked return types for a method.
Instance Method Details
#format_args(object) ⇒ String
Returns 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.(: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.
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.(: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.
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.
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.
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.
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 |