前回の続きで、ERB に埋め込む情報を YAML で記述する実験。
# config.yml books: - title: あいうえお author: かきくけこ price: 400 - title: さしすせそ author: たちつてと price: 800
#!/usr/bin/ruby -Ku require 'erb' require 'yaml' erb_doc = <<EOS hello world 1 <% config['books'].each_with_index do |i,n| -%> [<%= n %>] title:<%= i['title'] %> / author:<%= i['author'] %> <% end -%> hello world 2 EOS class MyTemplate def initialize @config = YAML.load(File.new('config.yml')) end def config @config end def result(script) ERB.new(script, nil, '-').result(binding) end end puts MyTemplate.new.result(erb_doc) # hello world 1 # [0] title:あいうえお / author:かきくけこ # [1] title:さしすせそ / author:たちつてと # hello world 2