如何扩展ERB模板

时间:2013-07-31 06:59:51

标签: ruby erb

我想扩展ERB以便每个输出标记 - <%=%> - 在呈现结果之前预处理内容。

例如,

<%= 'test' %>

现在应该呈现

!test! 

而不是

test

我该怎么做?

2 个答案:

答案 0 :(得分:0)

没有直接的方法可以做到这一点。也许你可以定义:

class String; def bang; "!#{self}!" end end

并做

<%= "test".bang %>

答案 1 :(得分:0)

这样的东西? (另)

require 'erb'
template = File.read(template_file)
template.gsub!(/<%=(.*?)%>/, '!\1!')
erb = ERB.new(template)
result = erb.result