From: Yusuke ENDOH Date: 2010-02-09T21:55:16+09:00 Subject: [ruby-dev:40370] Re: ERB#src (was Re: Re: [Feature #2366] private constant 咳さん 遠藤です。 2010年1月30日21:39 Masatoshi SEKI : > 時間と元気があるときに、evalするようなテストケースを提案してみます。 > 英語で意図を説明するのは私には無理なので、コード送ります。たぶん。 eval するような spec に書きなおして見ました。 私は rubyspec のコミット権を持っているので、咳さんさえよければすぐに コミットしてしまいますが、よろしいでしょうか。 diff --git a/library/erb/src_spec.rb b/library/erb/src_spec.rb index 8ea89b5..7b11041 100644 --- a/library/erb/src_spec.rb +++ b/library/erb/src_spec.rb @@ -3,51 +3,30 @@ require File.dirname(__FILE__) + '/../../spec_helper' describe "ERB#src" do - ruby_version_is "" ... "1.8.7" do - it "returns the compiled ruby code" do - input = <<'END' + it "returns the compiled ruby code evaluated to a string" do + # note that what concrete code is emitted is not guaranteed. + + input = <<'END' END - expected = <<'END' -_erbout = ''; _erbout.concat "\n" -_erbout -END - - expected.chomp! - ERB.new(input).src.should == expected - end - end - ruby_version_is "1.8.7" do - it "returns the compiled ruby code" do - input = <<'END' + expected = <<'END' -END - expected = <\\n" -; for item in list ; _erbout.concat "\\n
  • " -; _erbout.concat(( item ).to_s); _erbout.concat "
  • \\n" -; end ; _erbout.concat "\\n\\n" +
  • 1
  • -; _erbout -EOS +
  • 2
  • - expected.chomp! - ERB.new(input).src.should == expected - end +
  • 3
  • + + +END + list = [1, 2, 3] + eval(ERB.new(input).src).should == expected end end -- Yusuke ENDOH