Method: YARD::CodeObjects::MacroObject.expand
- Defined in:
- lib/yard/code_objects/macro_object.rb
.expand(macro_data, call_params = [], full_source = '', block_source = '') ⇒ Object
Expands macro_data
using the interpolation parameters.
Interpolation rules:
-
$0, $1, $2, … = the Nth parameter in
call_params
-
$* = the full statement source (excluding block)
-
Also supports ${N-M} ranges, as well as negative indexes on N or M
-
Use $ to escape the variable name in a macro.
96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 |
# File 'lib/yard/code_objects/macro_object.rb', line 96 def (macro_data, call_params = [], full_source = '', block_source = '') macro_data = macro_data.all if macro_data.is_a?(Docstring) macro_data.gsub(MACRO_MATCH) do escape, first, last, rng = $1, $2 || $5, $4, $3 ? true : false next $&[1..-1] if escape if first == '*' last ? $& : full_source else first_i = first.to_i last_i = (last ? last.to_i : call_params.size) last_i = first_i unless rng params = call_params[first_i..last_i] params ? params.join(", ") : '' end end end |