def_class(superklass=Object, methodname='result') public

Define unnamed class which has methodname as instance method, and return it.

example:

  class MyClass_
    def initialize(arg1, arg2)
      @arg1 = arg1;  @arg2 = arg2
    end
  end
  filename = 'example.rhtml'  # @arg1 and @arg2 are used in example.rhtml
  erb = ERB.new(File.read(filename))
  erb.filename = filename
  MyClass = erb.def_class(MyClass_, 'render()')
  print MyClass.new('foo', 123).render()
Show source
Register or log in to add new notes.