Module ERB::DefMethod
In: lib/erb.rb

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>

Methods

Public Instance methods

define methodname as instance method of current module, using ERB object or eRuby file

[Source]

     # 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

[Validate]