[前][次][番号順一覧][スレッド一覧]

ruby-changes:6102

From: nobu <ko1@a...>
Date: Fri, 27 Jun 2008 21:25:00 +0900 (JST)
Subject: [ruby-changes:6102] Ruby:r17614 (mvm): * merge from trunk r17600:17612.

nobu	2008-06-27 21:24:37 +0900 (Fri, 27 Jun 2008)

  New Revision: 17614

  Added files:
    branches/mvm/.merged-trunk-revision
  Modified files:
    branches/mvm/ChangeLog
    branches/mvm/lib/erb.rb
    branches/mvm/parse.y
    branches/mvm/test/erb/test_erb.rb

  Log:
    * merge from trunk r17600:17612.

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/mvm/lib/erb.rb?r1=17614&r2=17613&diff_format=u
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/mvm/test/erb/test_erb.rb?r1=17614&r2=17613&diff_format=u
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/mvm/ChangeLog?r1=17614&r2=17613&diff_format=u
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/mvm/parse.y?r1=17614&r2=17613&diff_format=u
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/mvm/.merged-trunk-revision?revision=17614&view=markup
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/mvm/.merged-trunk-revision?r1=17614&r2=17613&diff_format=u

Index: mvm/ChangeLog
===================================================================
--- mvm/ChangeLog	(revision 17613)
+++ mvm/ChangeLog	(revision 17614)
@@ -5,6 +5,22 @@
 
 	* lib/test/unit/ui/console/testrunner.rb (TestRunner#finished): ditto.
 
+Fri Jun 27 17:45:17 2008  Kazuhiro NISHIYAMA  <zn@m...>
+
+	* lib/erb.rb: adjust line number for magic comment.
+
+	* test/erb/test_erb.rb: add tests for def_method.
+
+Fri Jun 27 14:29:07 2008  Yukihiro Matsumoto  <matz@r...>
+
+	* parse.y (primary): empty not should call '!' on nil.
+	  cf [ruby-dev:35227]
+
+Fri Jun 27 14:25:52 2008  Nobuyoshi Nakada  <nobu@r...>
+
+	* vm.c (vm_eval_body): if thrown exception is frozen, reraise it to
+	  create a new instance.
+
 Fri Jun 27 13:29:26 2008  Nobuyoshi Nakada  <nobu@r...>
 
 	* include/ruby/intern.h (rb_str_new2, rb_tainted_str_new2,
Index: mvm/lib/erb.rb
===================================================================
--- mvm/lib/erb.rb	(revision 17613)
+++ mvm/lib/erb.rb	(revision 17614)
@@ -736,16 +736,16 @@
     if @safe_level
       th = Thread.start { 
 	$SAFE = @safe_level
-	eval(@src, b, (@filename || '(erb)'), 1)
+	eval(@src, b, (@filename || '(erb)'), 0)
       }
       return th.value
     else
-      return eval(@src, b, (@filename || '(erb)'), 1)
+      return eval(@src, b, (@filename || '(erb)'), 0)
     end
   end
 
   def def_method(mod, methodname, fname='(ERB)')  # :nodoc:
-    mod.module_eval("def #{methodname}\n" + self.src + "\nend\n", fname, 0)
+    mod.module_eval("def #{methodname}\n" + self.src + "\nend\n", fname, -1)
   end
 
   def def_module(methodname='erb')  # :nodoc:
Index: mvm/parse.y
===================================================================
--- mvm/parse.y	(revision 17613)
+++ mvm/parse.y	(revision 17614)
@@ -2624,7 +2624,7 @@
 		| keyword_not '(' rparen
 		    {
 		    /*%%%*/
-			$$ = NEW_LIT(Qtrue);
+			$$ = call_uni_op(cond(NEW_NIL()), '!');
 		    /*%
 			$$ = dispatch2(unary, ripper_intern("not"), Qnil);
 		    %*/
Index: mvm/.merged-trunk-revision
===================================================================
--- mvm/.merged-trunk-revision	(revision 0)
+++ mvm/.merged-trunk-revision	(revision 17614)
@@ -0,0 +1 @@
+17612

Property changes on: mvm/.merged-trunk-revision
___________________________________________________________________
Name: svn:eol-style
   + LF

Index: mvm/test/erb/test_erb.rb
===================================================================
--- mvm/test/erb/test_erb.rb	(revision 17613)
+++ mvm/test/erb/test_erb.rb	(revision 17614)
@@ -220,7 +220,7 @@
 
   class Bar; end
 
-  def test_def_method
+  def test_def_erb_method
     assert(! Bar.new.respond_to?('hello'))
     Bar.module_eval do
       extend ERB::DefMethod
@@ -237,6 +237,31 @@
     assert(Bar.new.respond_to?('hello_world'))    
   end
 
+  class DefMethodWithoutFname; end
+  class DefMethodWithFname; end
+
+  def test_def_method_without_filename
+    erb = ERB.new("<% raise ::TestERB::MyError %>")
+    erb.filename = "test filename"
+    assert(! DefMethodWithoutFname.new.respond_to?('my_error'))
+    erb.def_method(DefMethodWithoutFname, 'my_error')
+    e = assert_raise(::TestERB::MyError) {
+       DefMethodWithoutFname.new.my_error
+    }
+    assert_match(/\A\(ERB\):1\b/, e.backtrace[0])
+  end
+
+  def test_def_method_with_fname
+    erb = ERB.new("<% raise ::TestERB::MyError %>")
+    erb.filename = "test filename"
+    assert(! DefMethodWithFname.new.respond_to?('my_error'))
+    erb.def_method(DefMethodWithFname, 'my_error', 'test fname')
+    e = assert_raise(::TestERB::MyError) {
+       DefMethodWithFname.new.my_error
+    }
+    assert_match(/\Atest fname:1\b/, e.backtrace[0])
+  end
+
   def test_escape
     src = <<EOS
 1.<%% : <%="<%%"%>

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]