Ruby 2.1.0 リファレンスマニュアル > ライブラリ一覧 > erbライブラリ > ERBクラス > def_class

instance method ERB#def_class

def_class(superklass=Object, methodname='erb') -> Class[permalink][rdoc]

変換した Ruby スクリプトをメソッドとして定義した無名のクラスを返します。

[PARAM] superklass:
無名クラスのスーパークラス
[PARAM] methodname:
メソッド名


require 'erb'

class MyClass_
  def initialize(arg1, arg2)
    @arg1 = arg1;  @arg2 = arg2
  end
end
filename = 'example.rhtml'  # @arg1 と @arg2 が使われている example.rhtml

erb = ERB.new(File.read(filename))
erb.filename = filename
MyClass = erb.def_class(MyClass_, 'render()')
print MyClass.new('foo', 123).render()

# => test1foo
#    test2123