Module: ERB::DefMethod (Ruby 2.4.2)
Description: Module : ERB::DefMethod - Ruby 2.4.2

Support for the Ruby 2.4 series has ended. See here for reference.

### Home Classes Methods

### In Files

- erb.rb

### Methods

- ::def_erb_method

### Class/Module Index

Quicksearch

- ERB
- ERB::DefMethod
- ERB::Util

No matching classes.

# 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>

### Public Class Methods

def_erb_method(methodname, erb_or_fname) click to toggle source

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

                   # File erb.rb, line 1041
    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