Ruby 2.4参考手册
ERB
ERB::DefMethod
实用程序模块将eRuby脚本定义为实例方法。
例
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()
结果:
<b>10</b>
<b>20</b>
<b>30</b>
公共类方法
def_erb_method(methodname, erb_or_fname) Show source
定义methodname 作为当前模块的实例方法,所使用的是ERB对象或eRuby文件
# File lib/erb.rb, line 1040
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
私有实例方法
def_erb_method(methodname, erb_or_fname) Show source
定义methodname作为当前模块的实例方法,使用的是ERB对象或eRuby文件
# File lib/erb.rb, line 1040
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
ERB相关
Ruby 是一种面向对象、命令式、函数式、动态的通用编程语言,是世界上最优美而巧妙的语言。
主页 | https://www.ruby-lang.org/ |
源码 | https://github.com/ruby/ruby |
版本 | 2.4 |
发布版本 | 2.4.1 |