そのHashを作った経緯を考えたら、こういうのは本当は要らないと信じてる。
信じるっていうのは、とても信じられないようなことを信じるときに使うんだけどさ。
class YourEnv def initialize(env) @env = env end def method_missing(name) @env[name] || @env[name.to_s] end def apply(&blk) instance_eval(&blk) end def apply_erb(erb) erb.result(binding) end end require 'erb' s = <<EOS <%= title %> <%= body %> EOS erb = ERB.new(s) hash = { 'title' => 'goro', :body => '2ndlife' } puts YourEnv.new(hash).apply_erb(erb)
ところで、Hashのキーはどれも変数やメソッド名に使えるんだっけ?