Я использую ERB через консоль для метапрограммирования (для математического программного обеспечения). Например, у меня есть файл test.erb
, содержащий
text line before ruby
<%= 'via <%=' %>
<% print 'print' %>
<% puts 'puts' %>
text line after ruby
Когда я анализирую его по $ erb test.erb
, я получаю следующий вывод
printputs
text line before ruby
via <%=
text line after ruby
Меня это не удивляет, но мне интересно, есть ли хороший способ перехватить вывод метода print
и поместить его в место, где он вызывается в шаблоне ERB?
text line before ruby
via <%=
print
puts
text line after ruby
Представьте, что у меня сложная конструкция, где я предпочитаю печатать, а не собирать выходные данные в строку внутри <%= %>
.
Обновление
Просто чтобы проиллюстрировать ответ Брайана:
text line before ruby
<%= '<%=' %>
% print 'print'
% puts 'puts'
% E = _erbout
% E << '_erbout'+"\n"
text line after ruby
Анализ файла $ erb test.erb
:
printputs
text line before ruby
<%=
_erbout
text line after ruby