From: Minero Aoki Date: 2003-12-10T16:50:30+09:00 Subject: [ruby-dev:22208] ERB#filename 青木です。 ERB に関してです。 eRuby スクリプト中でエラーが起きるといつもファイル名が (eval) で わかりにくいので、eval にファイル名を渡すようにできないでしょうか。 以下のように、ERB#filename= で渡せるだけで十分なのですが。 --- lib/erb.rb 31 Jul 2003 14:49:19 -0000 1.10 +++ lib/erb.rb 8 Dec 2003 05:46:05 -0000 @@ -387,8 +387,10 @@ class ERB compiler = ERB::Compiler.new(trim_mode) set_eoutvar(compiler, eoutvar) @src = compiler.compile(str) + @filename = nil end - attr :src + attr_reader :src + attr_accessor :filename def set_eoutvar(compiler, eoutvar = '_erbout') compiler.put_cmd = "#{eoutvar}.concat" @@ -416,7 +418,7 @@ class ERB } return th.value else - return eval(@src, b) + return eval(@src, b, (@filename || '(erb)'), 1) end end ------------------------------------------------------------------- 青木峰郎