[macruby-changes] [1313] MacRuby/branches/experimental/spec/frozen/language/return_spec.rb

source_changes at macosforge.org source_changes at macosforge.org
Fri Apr 3 17:14:39 PDT 2009


Revision: 1313
          http://trac.macosforge.org/projects/ruby/changeset/1313
Author:   lsansonetti at apple.com
Date:     2009-04-03 17:14:38 -0700 (Fri, 03 Apr 2009)
Log Message:
-----------
converted to 1.9 behaviors

Modified Paths:
--------------
    MacRuby/branches/experimental/spec/frozen/language/return_spec.rb

Modified: MacRuby/branches/experimental/spec/frozen/language/return_spec.rb
===================================================================
--- MacRuby/branches/experimental/spec/frozen/language/return_spec.rb	2009-04-03 23:59:01 UTC (rev 1312)
+++ MacRuby/branches/experimental/spec/frozen/language/return_spec.rb	2009-04-04 00:14:38 UTC (rev 1313)
@@ -23,23 +23,49 @@
 
 
   describe "in a Thread" do
-    it "raises a ThreadError if used to exit a thread" do
-      lambda { Thread.new { return }.join }.should raise_error(ThreadError)
+    ruby_version_is "" ... "1.9" do
+      it "raises a ThreadError if used to exit a thread" do
+        lambda { Thread.new { return }.join }.should raise_error(ThreadError)
+      end
     end
+
+    ruby_version_is "1.9" do
+      it "raises a LocalJumpError if used to exit a thread" do
+        lambda { Thread.new { return }.join }.should raise_error(LocalJumpError)
+      end
+    end
   end
 
 
   describe "when passed a splat" do
-    it "returns nil when the ary is empty" do
-      def r; ary = []; return *ary; end
-      r.should be_nil
+    ruby_version_is "" ... "1.9" do
+      it "returns nil when the ary is empty" do
+        def r; ary = []; return *ary; end
+        r.should be_nil
+      end
     end
 
-    it "returns the first element when the array is size of 1" do
-      def r; ary = [1]; return *ary; end
-      r.should == 1
+    ruby_version_is "1.9" do
+      it "returns [] when the ary is empty" do
+        def r; ary = []; return *ary; end
+        r.should == []
+      end
     end
 
+    ruby_version_is "" ... "1.9" do
+      it "returns the first element when the array is size of 1" do
+        def r; ary = [1]; return *ary; end
+        r.should == 1
+      end
+    end
+
+    ruby_version_is "1.9" do
+      it "returns the array when the array is size of 1" do
+        def r; ary = [1]; return *ary; end
+        r.should == [1]
+      end
+    end
+
     it "returns the whole array when size is greater than 1" do
       def r; ary = [1,2]; return *ary; end
       r.should == [1,2]
@@ -48,11 +74,20 @@
       r.should == [1,2,3]
     end
 
-    it "returns a non-array when used as a splat" do
-      def r; value = 1; return *value; end
-      r.should == 1
+    ruby_version_is "" ... "1.9" do
+      it "returns a non-array when used as a splat" do
+        def r; value = 1; return *value; end
+        r.should == 1
+      end
     end
 
+    ruby_version_is "1.9" do
+      it "returns an array when used as a splat" do
+        def r; value = 1; return *value; end
+        r.should == [1]
+      end
+    end
+
     it "calls 'to_a' on the splatted value first" do
       def r
         obj = Object.new
@@ -63,8 +98,14 @@
         return *obj
       end
 
-      r().should be_nil
+      ruby_version_is "" ... "1.9" do
+        r().should be_nil
+      end
 
+      ruby_version_is "1.9" do
+        r().should == []
+      end
+
       def r
         obj = Object.new
         def obj.to_a
@@ -74,8 +115,14 @@
         return *obj
       end
 
-      r().should == 1
+      ruby_version_is "" ... "1.9" do
+        r().should == 1
+      end
 
+      ruby_version_is "1.9" do
+        r().should == [1]
+      end
+
       def r
         obj = Object.new
         def obj.to_a
@@ -88,39 +135,41 @@
       r().should == [1,2]
     end
 
-    it "calls 'to_ary' on the splatted value first" do
-      def r
-        obj = Object.new
-        def obj.to_ary
-          []
+    ruby_version_is "" ... "1.9" do
+      it "calls 'to_ary' on the splatted value first" do
+        def r
+          obj = Object.new
+          def obj.to_ary
+            []
+          end
+  
+          return *obj
         end
-
-        return *obj
-      end
-
-      r().should be_nil
-
-      def r
-        obj = Object.new
-        def obj.to_ary
-          [1]
+  
+        r().should be_nil
+  
+        def r
+          obj = Object.new
+          def obj.to_ary
+            [1]
+          end
+  
+          return *obj
         end
-
-        return *obj
-      end
-
-      r().should == 1
-
-      def r
-        obj = Object.new
-        def obj.to_ary
-          [1,2]
+  
+        r().should == 1
+  
+        def r
+          obj = Object.new
+          def obj.to_ary
+            [1,2]
+          end
+  
+          return *obj
         end
-
-        return *obj
+  
+        r().should == [1,2]
       end
-
-      r().should == [1,2]
     end
   end
 
@@ -186,9 +235,11 @@
 
 
   describe "within a block" do
-    it "raises a LocalJumpError if there is no lexicaly enclosing method" do
-      def f; yield; end
-      lambda { f { return 5 } }.should raise_error(LocalJumpError)
+    ruby_version_is "" ... "1.9" do
+      it "raises a LocalJumpError if there is no lexicaly enclosing method" do
+        def f; yield; end
+        lambda { f { return 5 } }.should raise_error(LocalJumpError)
+      end
     end
 
     it "causes lambda to return nil if invoked without any arguments" do
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-changes/attachments/20090403/7a7cdde3/attachment-0001.html>


More information about the macruby-changes mailing list