2018年6月1日金曜日

Ruby で erb を普通に使う方法

概要

Sinatra などで HTML を返却するときに erb を使いますが普通の Ruby スクリプト内でも使えます

環境

  • macOS 10.13.4
  • Ruby 2.5.1p57

サンプル

  • vim test.rb
require 'erb'

erb = ERB.new(File.read("./doc.erb"))
@title = 'hoge'
ret = erb.result(binding)
puts ret
  • vim doc.erb
@title => <%= @title %>

で実行すると test.rb で @title 変数に設定した 値が表示されると思います
ヒアドキュメントでも同じようなことはできますが、erb を使ったほうがきれいに書けるケースもあると思います

trim_mode をつかう場合

ERB.new する際に第三引数で trim する文字列を指定します

  • vim test.rb
require 'erb'

erb = ERB.new(File.read("./doc.erb"), nil, '-')
@titles = ['hoge', 'hoge1', 'hoge2']
ret = erb.result(binding)
puts ret
  • vim doc.erb
<%- @titles.each { |title| -%>
@title is <%= title %>
<%- } -%>

0 件のコメント:

コメントを投稿