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.
92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 |
# File 'lib/yard/code_objects/macro_object.rb', line 92 def (macro_data, call_params = [], full_source = '', block_source = '') # rubocop:disable Lint/UnusedMethodArgument macro_data = macro_data.all if macro_data.is_a?(Docstring) macro_data.gsub(MACRO_MATCH) do escape = $1 first = $2 || $5 last = $4 rng = $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 |