Spec-Zone.ru › Ruby 3.1

модуль 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) Показать исходный код
# File lib/erb.rb, line 1066
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

определить methodname как метод экземпляра текущего модуля, используя объект ERB или файл eRuby

Приватные методы экземпляра

def_erb_method(methodname, erb_or_fname) Показать исходный код
# File lib/erb.rb, line 1066
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

определить methodname как метод экземпляра текущего модуля, используя объект ERB или файл eRuby

Ruby Core © 1993–2017 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API