erb、と聞くとrailsのフロントエンドで使われている印象ですが、実はそれ以外にも応用が効く優れものです。
この記事ははerbテンプレートに変数を入力することでファイルを作成してみます。
まずerbをインストールする
gem install
やbundle install
でerbをインストールします。
ここはお好みで。
テンプレートファイルを作成する
erbテンプレートを作成します。今回は説明を簡単にするために、簡単なerbファイルを作成します。
<%= @number %>
erbテンプレートからファイルを作成してみる
先ほど作成したerbテンプレートから実際にrubyコードを書いてファイルを出力してみます。
今回はRake taskとして作成してみます。
# frozen_string_literal: true
require 'erb'
task :sample do
erb = ERB.new(
File.read('sample.erb')
)
@number = 1
filename = "#{number}.txt"
File.write(filename, erb.result)
end
行っている処理としては、ERB.new()
でerbファイルの中身を文字列として読み込み、erb.result
が実行されるときに、変数などを代入した結果の文字列をファイルに出力しています。
bundle exec rake sample
を実行することで今回は@number
に1を代入しているので、1という文字列が出力された1.txt
が作成されます。
まとめ
今回は簡単なサンプルを用いてerbから簡単なファイル生成を行ってみました。
冒頭にも書いた通りerbはフロントエンドで利用されている印象が強いですが、テンプレートエンジンとしてこのような用途もあるので、何かテンプレートを作成するときに利用してみるのはいかがでしょうか?