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

ruby-changes:17067

From: wanabe <ko1@a...>
Date: Sat, 21 Aug 2010 23:40:57 +0900 (JST)
Subject: [ruby-changes:17067] Ruby:r29065 (trunk): * test/ruby/test_super.rb: add test.

wanabe	2010-08-21 23:38:17 +0900 (Sat, 21 Aug 2010)

  New Revision: 29065

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=29065

  Log:
    * test/ruby/test_super.rb: add test.

  Modified files:
    trunk/test/ruby/test_super.rb

Index: test/ruby/test_super.rb
===================================================================
--- test/ruby/test_super.rb	(revision 29064)
+++ test/ruby/test_super.rb	(revision 29065)
@@ -139,4 +139,49 @@
     }
     assert_match(/implicit argument passing of super from method defined by define_method/, e.message)
   end
+
+  class SubSeq
+    def initialize
+      @first=11
+      @first or fail
+    end
+
+    def subseq 
+      @first or fail
+    end
+  end
+
+  class Indexed
+    def subseq
+      SubSeq.new
+    end
+  end
+
+  Overlaid = proc do
+    class << self
+      def subseq
+        super.instance_eval(& Overlaid)
+      end
+    end
+  end
+
+  def test_overlaid
+    assert_nothing_raised('[ruby-dev:40959]') do
+      overlaid = proc do |obj|
+        def obj.reverse
+          super
+        end
+      end
+      overlaid.call(str = "123")
+      overlaid.call(ary = [1,2,3])
+      str.reverse
+    end
+
+    assert_nothing_raised('[ruby-core:27230]') do
+      mid=Indexed.new
+      mid.instance_eval(&Overlaid)
+      mid.subseq
+      mid.subseq
+    end
+  end
 end

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

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