| Module | ERB::DefMethod |
| In: |
lib/erb.rb
|
Utility module to define eRuby script as instance method.
example.rhtml:
<% for item in @items %> <b><%= item %></b> <% end %>
example.rb:
require 'erb'
class MyClass
extend ERB::DefMethod
def_erb_method('render()', 'example.rhtml')
def initialize(items)
@items = items
end
end
print MyClass.new([10,20,30]).render()
result:
<b>10</b> <b>20</b> <b>30</b>
define methodname as instance method of current module, using ERB object or eRuby file
# File lib/erb.rb, line 850
850: def def_erb_method(methodname, erb_or_fname)
851: if erb_or_fname.kind_of? String
852: fname = erb_or_fname
853: erb = ERB.new(File.read(fname))
854: erb.def_method(self, methodname, fname)
855: else
856: erb = erb_or_fname
857: erb.def_method(self, methodname, erb.filename || '(ERB)')
858: end
859: end