本文简要介绍ruby语言中 ERB.new
的用法。
用法
new(str, safe_level=NOT_GIVEN, legacy_trim_mode=NOT_GIVEN, legacy_eoutvar=NOT_GIVEN, trim_mode: nil, eoutvar: '_erbout')
使用 str
中指定的模板构造一个新的 ERB
对象。
ERB
对象通过构建一段 Ruby 代码来工作,该代码将在运行时输出完整的模板。
如果 trim_mode
传递了包含以下一个或多个修饰符的 String
,则 ERB
将调整其代码生成,如下所示:
% enables Ruby code processing for lines beginning with % <> omit newline for lines starting with <% and ending in %> > omit newline for lines ending in %> - omit blank lines ending in -%>
eoutvar
可用于设置变量的名称 ERB
将在其中构建其输出。当您需要通过相同的绑定运行多个 ERB
模板和/或当您想要控制输出位置时,这很有用结束。传递要在 String
中使用的变量的名称。
示例
require "erb"
# build data class
class Listings
PRODUCT = { :name => "Chicken Fried Steak",
:desc => "A well messages pattie, breaded and fried.",
:cost => 9.95 }
attr_reader :product, :price
def initialize( product = "", price = "" )
@product = product
@price = price
end
def build
b = binding
# create and run templates, filling member data variables
ERB.new(<<-'END_PRODUCT'.gsub(/^\s+/, ""), trim_mode: "", eoutvar: "@product").result b
<%= PRODUCT[:name] %>
<%= PRODUCT[:desc] %>
END_PRODUCT
ERB.new(<<-'END_PRICE'.gsub(/^\s+/, ""), trim_mode: "", eoutvar: "@price").result b
<%= PRODUCT[:name] %> -- <%= PRODUCT[:cost] %>
<%= PRODUCT[:desc] %>
END_PRICE
end
end
# setup template data
listings = Listings.new
listings.build
puts listings.product + "\n" + listings.price
Generates
Chicken Fried Steak A well messages pattie, breaded and fried. Chicken Fried Steak -- 9.95 A well messages pattie, breaded and fried.
相关用法
- Ruby ERB.location=用法及代码示例
- Ruby ERB.def_class用法及代码示例
- Ruby ERB.def_module用法及代码示例
- Ruby ERB.def_method用法及代码示例
- Ruby ERBIO类用法及代码示例
- Ruby ERB类用法及代码示例
- Ruby Enumerable.any?用法及代码示例
- Ruby Enumerable min_by()用法及代码示例
- Ruby Enumerable each_witth_object()用法及代码示例
- Ruby ErrorHighlight.spot用法及代码示例
- Ruby Enumerable.slice_before用法及代码示例
- Ruby Enumerable each_cons()用法及代码示例
- Ruby Enumerator each_with_index用法及代码示例
- Ruby Encoding.compatible?用法及代码示例
- Ruby Enumerable.uniq用法及代码示例
- Ruby Enumerator each_with_object用法及代码示例
- Ruby ENV.empty?用法及代码示例
- Ruby Enumerable uniq()用法及代码示例
- Ruby Enumerable.find_all用法及代码示例
- Ruby Enumerator.peek_values用法及代码示例
- Ruby Enumerable.max用法及代码示例
- Ruby Enumerable.map用法及代码示例
- Ruby Enumerable min()用法及代码示例
- Ruby Enumerable.min_by用法及代码示例
- Ruby Enumerable.find_index用法及代码示例
注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 ERB.new。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。