Я использую ERB для метапрограммирования некоторого математического языка. Если бы я мог расширить функциональность ERB для обработки тегов %=
, это позволило бы мне значительно упростить мои источники. Я просто хочу получить вывод строки по аналогии с <%= %>
. Я пытался копаться в файле /usr/lib/ruby/1.9.1/erb.rb
, но очень быстро заблудился. Может вы поможете с этой проблемой?
Как расширить Ruby ERB для обработки тегов %=?
Ответы (1)
Ну, кажется, я справился сам. Если вы сохраните код на странице http://pastie.org/1056824 (или http://gist.github.com/487297) как extended_erb.rb
, а затем вызовите его в своем скрипте...
require 'extended_erb'
puts ERB.new(File.read('mytemplate.erb'), 0, '%').result
или запустить ERB из командной строки...
erb -r extended_erb mytemplate.erb
затем следующий шаблон...
<%= 1 %>
%= 2
будет производить желаемый результат
1
2
person
Andrei
schedule
23.07.2010
%
тоже нет необходимости — можно использовать<% %>
. Путь Ruby, как я его вижу, состоит в том, чтобы максимизировать красоту кода, и%=
очень хорошо соответствует этой концепции. :) - person Andrei   schedule 23.07.2010