Module: ERB::DefMethod
- Defined in:
- lib/erb/def_method.rb
Overview
– ERB::DefMethod
Utility module to define eRuby script as instance method.
Example
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>
Class Method Summary collapse
-
.def_erb_method(methodname, erb_or_fname) ⇒ Object
define methodname as instance method of current module, using ERB object or eRuby file.
Class Method Details
.def_erb_method(methodname, erb_or_fname) ⇒ Object
define methodname as instance method of current module, using ERB object or eRuby file
36 37 38 39 40 41 42 43 44 45 |
# File 'lib/erb/def_method.rb', line 36 def def_erb_method(methodname, erb_or_fname) if erb_or_fname.kind_of? String fname = erb_or_fname erb = ERB.new(File.read(fname)) erb.def_method(self, methodname, fname) else erb = erb_or_fname erb.def_method(self, methodname, erb.filename || '(ERB)') end end |