new(str, safe_level=NOT_GIVEN, trim_mode=NOT_GIVEN, eoutvar=NOT_GIVEN, trim_mode: nil, eoutvar: '_erbout') -> ERB
[permalink][rdoc][edit]-
eRubyスクリプト から ERB オブジェクトを生成して返します。
- [PARAM] str:
- eRubyスクリプトを表す文字列
- [PARAM] safe_level:
- eRubyスクリプトが実行されるときのセーフレベル
- [PARAM] trim_mode:
- 整形の挙動を変更するオプション
- [PARAM] eoutvar:
- eRubyスクリプトの中で出力をためていく変数の名前を表す文字列。eRuby スクリプトの中でさらに ERB を使うときに変更します。通常は指定する必要はありません。
Ruby 2.6.0 から位置引数での safe_level, trim_mode, eoutvar の指定は非推奨です。 Ruby 3.2 で削除されました。 trim_mode と eoutvar の指定はキーワード引数に移行してください。
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', eoutvar: "@product").result b <%= PRODUCT[:name] %> <%= PRODUCT[:desc] %> END_PRODUCT ERB.new(<<~'END_PRICE', 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 # Chicken Fried Steak # A well messages pattie, breaded and fried. # # Chicken Fried Steak -- 9.95 # A well messages pattie, breaded and fried.