I have released Erubis 1.1.0.
http://rubyforge.org/projects/erubis/
Erubis is an implementation of eRuby.
It has the following features:
- Auto sanitizing support
- Embedded pattern changeable (default ‘<% %>’)
- Auto trimming spaces around ‘<% %>’
- Context object available
- Print statement available
- Faster mode support
- Easy to expand in subclass
Erubis is implemented in pure Ruby. It requires Ruby 1.8 or higher.
Sample code (example.rb):
eRuby script
(‘<%= %>’ is escaped and ‘<%== %>’ is not escaped when XmlEruby)
input = <<END
-
<% for item in list %>
- <%= item %> <%== item %> <% end %>
create Eruby object
require ‘erubis’
eruby = Erubis::XmlEruby.new(input) # or Erubis::Eruby.new(input)
get result
list = [‘’, ‘b&b’, ‘“ccc”’]
puts eruby.result(binding())
result:
$ ruby example.rb
- <aaa>
- b&b b&b
- "ccc" "ccc"
See doc/users-guide.html in archive for details.
: Enhancement from 1.0.1
-
‘<%# … %>’ supported. Erubis ignores ‘<%# %>’.
-
New class PrintEruby and PrintXmlEruby available.
These class enables you to embed print statement in eRuby
(this feature is not supported in ERB).ex. example.eb
data and context
list = [‘aaa’, ‘bbb’, ‘ccc’]
context = { :list => list }eRuby script
(use print statement instead of <%= item %>)
input = <<-END
-
<% for item in list %>
- <% print item %> <% end %>
create eruby and get result as string
require ‘erubis’
eruby = Erubis::PrintEruby.new(input)
str = eruby.evaluate(context) # don’t use result()!
print strresult:
$ ruby example.rb
- aaa
- bbb
- ccc
Have fun!