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 884
884:     def def_erb_method(methodname, erb_or_fname)
885:       if erb_or_fname.kind_of? String
886:         fname = erb_or_fname
887:         erb = ERB.new(File.read(fname))
888:         erb.def_method(self, methodname, fname)
889:       else
890:         erb = erb_or_fname
891:         erb.def_method(self, methodname, erb.filename || '(ERB)')
892:       end
893:     end

[Validate]