[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[kagemai-users:0602] Re: ruby1.8.5で動作せず



須藤です.

In <20061031210842.d0c9ffbf.yasuo@xxxxxxxx>
  "[kagemai-users:0601] Re: ruby1.8.5で動作せず" on Tue, 31 Oct 2006 21:08:42 +0900,
  Eto Yasuo <yasuo@xxxxxxxx> wrote:

> > 手元のDebian sidでは動きました.
> 
> あれ、、、私の端末が怪しいのですかね。。。

私はCGIで動かしましたが,mod_rubyとかですか?

あ,CVSのstable-0_8を使いました.

> > ねぇ.出力が変なところに流れているのかしら.でもどこに?
> > 
> > とりあえず,lib/kagemai/util.rbのUtil.erb_eval_fileの
> > 
> >     def Util.erb_eval_file(filename, binding = TOPLEVEL_BINDING)
> >       src = open(filename, 'rb') {|file| ERB.new(file.read.gsub(/\r\n/, "\n")).src}
> >       eval(src.untaint, binding, filename)
> >     end
> > 
> > を
> > 
> >     def Util.erb_eval_file(filename, binding = TOPLEVEL_BINDING)
> >       src = open(filename, 'rb') {|file| ERB.new(file.read.gsub(/\r\n/, "\n")).src}
> >       STDERR.puts(src.inspect)
> >       eval(src.untaint, binding, filename)
> >     end
> > 
> > とかにして該当するコンパイル済みのERBがどうなっているか見せ
> > てもらえますか?
> > 
> 
> ログが吐かれましたので、添付いたします。
> kagemai.log としてみました。
> 

あぁ,おかしいですね.ERBがprintしちゃっています.

なんでだろう.どこかに古いERBが転がっていたりしませんか?
でも,ERBって影舞についてきますね.うーん.

やっつけでよければこれで動くと思います.

    def Util.erb_eval_file(filename, binding = TOPLEVEL_BINDING)
      src = open(filename, 'rb') {|file| ERB.new(file.read.gsub(/\r\n/, "\n")).src}
      src = src.gsub(/print(/, "_erbout << (")
      eval(src.untaint, binding, filename)
    end