[macruby-changes] [2413] MacRuby/trunk/mspec

source_changes at macosforge.org source_changes at macosforge.org
Fri Aug 28 16:39:55 PDT 2009


Revision: 2413
          http://trac.macosforge.org/projects/ruby/changeset/2413
Author:   eloy.de.enige at gmail.com
Date:     2009-08-28 16:39:55 -0700 (Fri, 28 Aug 2009)
Log Message:
-----------
Updated MSpec to ef4487f3cab0f9ce30c37e43cf9641c6ff791162

Modified Paths:
--------------
    MacRuby/trunk/mspec/lib/mspec/mocks/mock.rb
    MacRuby/trunk/mspec/lib/mspec/runner/object.rb
    MacRuby/trunk/mspec/spec/mocks/mock_spec.rb
    MacRuby/trunk/mspec/upstream

Removed Paths:
-------------
    MacRuby/trunk/mspec/upstream_patch.diff

Modified: MacRuby/trunk/mspec/lib/mspec/mocks/mock.rb
===================================================================
--- MacRuby/trunk/mspec/lib/mspec/mocks/mock.rb	2009-08-28 23:39:32 UTC (rev 2412)
+++ MacRuby/trunk/mspec/lib/mspec/mocks/mock.rb	2009-08-28 23:39:55 UTC (rev 2413)
@@ -1,6 +1,10 @@
 require 'mspec/expectations/expectations'
 require 'mspec/helpers/metaclass'
 
+class Object
+  alias_method :__mspec_object_id__, :object_id
+end
+
 module Mock
   def self.reset
     @mocks = @stubs = @objects = nil
@@ -19,7 +23,7 @@
   end
 
   def self.replaced_name(obj, sym)
-    :"__mspec_#{obj.__id__}_#{sym}__"
+    :"__mspec_#{obj.__mspec_object_id__}_#{sym}__"
   end
 
   def self.replaced_key(obj, sym)
@@ -166,7 +170,7 @@
       sym = key.last
       meta = obj.metaclass
 
-      if meta.instance_methods.map { |x| x.to_sym }.include?(replaced)
+      if mock_respond_to? obj, replaced
         meta.__send__ :alias_method, sym, replaced
         meta.__send__ :remove_method, replaced
       else

Modified: MacRuby/trunk/mspec/lib/mspec/runner/object.rb
===================================================================
--- MacRuby/trunk/mspec/lib/mspec/runner/object.rb	2009-08-28 23:39:32 UTC (rev 2412)
+++ MacRuby/trunk/mspec/lib/mspec/runner/object.rb	2009-08-28 23:39:55 UTC (rev 2413)
@@ -19,6 +19,10 @@
     MSpec.current.it_should_behave_like desc
   end
 
+  # For ReadRuby compatiability
+  def doc(*a)
+  end
+
   alias_method :context, :describe
   alias_method :specify, :it
 end

Modified: MacRuby/trunk/mspec/spec/mocks/mock_spec.rb
===================================================================
--- MacRuby/trunk/mspec/spec/mocks/mock_spec.rb	2009-08-28 23:39:32 UTC (rev 2412)
+++ MacRuby/trunk/mspec/spec/mocks/mock_spec.rb	2009-08-28 23:39:55 UTC (rev 2413)
@@ -22,7 +22,7 @@
 describe Mock, ".replaced_name" do
   it "returns the name for a method that is being replaced by a mock method" do
     m = mock('a fake id')
-    m.stub!(:__id__).and_return(42)
+    m.stub!(:__mspec_object_id__).and_return(42)
     Mock.replaced_name(m, :method_call).should == :__mspec_42_method_call__
   end
 end
@@ -30,7 +30,7 @@
 describe Mock, ".replaced_key" do
   it "returns a key used internally by Mock" do
     m = mock('a fake id')
-    m.stub!(:__id__).and_return(42)
+    m.stub!(:__mspec_object_id__).and_return(42)
     Mock.replaced_key(m, :method_call).should == [:__mspec_42_method_call__, :method_call]
   end
 end

Modified: MacRuby/trunk/mspec/upstream
===================================================================
--- MacRuby/trunk/mspec/upstream	2009-08-28 23:39:32 UTC (rev 2412)
+++ MacRuby/trunk/mspec/upstream	2009-08-28 23:39:55 UTC (rev 2413)
@@ -1 +1 @@
-e8129536bba5624579112283197a5138134be28b
\ No newline at end of file
+ef4487f3cab0f9ce30c37e43cf9641c6ff791162
\ No newline at end of file

Deleted: MacRuby/trunk/mspec/upstream_patch.diff
===================================================================
--- MacRuby/trunk/mspec/upstream_patch.diff	2009-08-28 23:39:32 UTC (rev 2412)
+++ MacRuby/trunk/mspec/upstream_patch.diff	2009-08-28 23:39:55 UTC (rev 2413)
@@ -1,257 +0,0 @@
-diff --git a/lib/mspec/guards.rb b/lib/mspec/guards.rb
-index 71aa742..534e270 100644
---- a/lib/mspec/guards.rb
-+++ b/lib/mspec/guards.rb
-@@ -13,4 +13,5 @@ require 'mspec/guards/runner'
- require 'mspec/guards/support'
- require 'mspec/guards/superuser'
- require 'mspec/guards/tty'
-+require 'mspec/guards/user'
- require 'mspec/guards/version'
-diff --git a/lib/mspec/guards/guard.rb b/lib/mspec/guards/guard.rb
-index 667909c..6a9d91d 100644
---- a/lib/mspec/guards/guard.rb
-+++ b/lib/mspec/guards/guard.rb
-@@ -123,6 +123,8 @@ class SpecGuard
-         RUBY_NAME =~ /^ironruby/
-       when :macruby
-         RUBY_NAME =~ /^macruby/
-+      when :maglev
-+        RUBY_NAME =~ /^maglev/
-       else
-         false
-       end
-diff --git a/lib/mspec/guards/user.rb b/lib/mspec/guards/user.rb
-new file mode 100644
-index 0000000..83e77ce
---- /dev/null
-+++ b/lib/mspec/guards/user.rb
-@@ -0,0 +1,17 @@
-+require 'mspec/guards/guard'
-+
-+class UserGuard < SpecGuard
-+  def match?
-+    Process.euid != 0
-+  end
-+end
-+
-+class Object
-+  def as_user
-+    g = UserGuard.new
-+    g.name = :as_user
-+    yield if g.yield?
-+  ensure
-+    g.unregister
-+  end
-+end
-diff --git a/lib/mspec/helpers.rb b/lib/mspec/helpers.rb
-index ec0ac44..47a2959 100644
---- a/lib/mspec/helpers.rb
-+++ b/lib/mspec/helpers.rb
-@@ -7,9 +7,11 @@ require 'mspec/helpers/environment'
- require 'mspec/helpers/fixture'
- require 'mspec/helpers/flunk'
- require 'mspec/helpers/hash'
-+require 'mspec/helpers/infinity'
- require 'mspec/helpers/io'
- require 'mspec/helpers/language_version'
- require 'mspec/helpers/metaclass'
-+require 'mspec/helpers/nan'
- require 'mspec/helpers/ruby_exe'
- require 'mspec/helpers/scratch'
- require 'mspec/helpers/tmp'
-diff --git a/lib/mspec/helpers/infinity.rb b/lib/mspec/helpers/infinity.rb
-new file mode 100644
-index 0000000..0e757ed
---- /dev/null
-+++ b/lib/mspec/helpers/infinity.rb
-@@ -0,0 +1,5 @@
-+class Object
-+  def infinity_value
-+    1/0.0
-+  end
-+end
-diff --git a/lib/mspec/helpers/nan.rb b/lib/mspec/helpers/nan.rb
-new file mode 100644
-index 0000000..2e7f50b
---- /dev/null
-+++ b/lib/mspec/helpers/nan.rb
-@@ -0,0 +1,5 @@
-+class Object
-+  def nan_value
-+    0/0.0
-+  end
-+end
-diff --git a/lib/mspec/helpers/ruby_exe.rb b/lib/mspec/helpers/ruby_exe.rb
-index 1b71901..c72c0e5 100644
---- a/lib/mspec/helpers/ruby_exe.rb
-+++ b/lib/mspec/helpers/ruby_exe.rb
-@@ -76,6 +76,8 @@ class Object
-         "bin/rbx"
-       when 'jruby'
-         "bin/jruby"
-+      when 'maglev'
-+        "maglev-ruby"
-       when 'ironruby'
-         "ir"
-       end
-diff --git a/lib/mspec/utils/options.rb b/lib/mspec/utils/options.rb
-index c79de39..fe9c97c 100644
---- a/lib/mspec/utils/options.rb
-+++ b/lib/mspec/utils/options.rb
-@@ -221,6 +221,8 @@ class MSpecOptions
-         config[:target] = 'jruby'
-       when 'i','ironruby'
-         config[:target] = 'ir'
-+      when 'm','maglev'
-+        config[:target] = 'maglev-ruby'
-       else
-         config[:target] = t
-       end
-@@ -233,6 +235,7 @@ class MSpecOptions
-     doc "     X or rbx               invokes rbx in PATH"
-     doc "     j or jruby             invokes jruby in PATH"
-     doc "     i or ironruby          invokes ir in PATH"
-+    doc "     m or maglev            invokes maglev-ruby in PATH"
-     doc "     full path to EXE       invokes EXE directly\n"
- 
-     on("-T", "--target-opt", "OPT",
-diff --git a/spec/guards/guard_spec.rb b/spec/guards/guard_spec.rb
-index ee4c6c7..dcac5b6 100644
---- a/spec/guards/guard_spec.rb
-+++ b/spec/guards/guard_spec.rb
-@@ -180,6 +180,11 @@ describe SpecGuard, "#implementation?" do
-     @guard.implementation?(:ironruby).should == true
-   end
- 
-+  it "returns true if passed :maglev and RUBY_NAME == 'maglev'" do
-+    Object.const_set :RUBY_NAME, 'maglev'
-+    @guard.implementation?(:maglev).should == true
-+  end
-+
-   it "returns true if passed :ruby and RUBY_NAME matches /^ruby/" do
-     Object.const_set :RUBY_NAME, 'ruby'
-     @guard.implementation?(:ruby).should == true
-@@ -238,7 +243,7 @@ describe SpecGuard, "#platform?" do
-   end
- 
-   it "returns false when no arg matches RUBY_PLATFORM" do
--    @guard.platform?(:ruby, :jruby, :rubinius).should == false
-+    @guard.platform?(:ruby, :jruby, :rubinius, :maglev).should == false
-   end
- 
-   it "returns true when arg matches RUBY_PLATFORM" do
-@@ -246,7 +251,7 @@ describe SpecGuard, "#platform?" do
-   end
- 
-   it "returns true when any arg matches RUBY_PLATFORM" do
--    @guard.platform?(:ruby, :jruby, :solarce, :rubinius).should == true
-+    @guard.platform?(:ruby, :jruby, :solarce, :rubinius, :maglev).should == true
-   end
- 
-   it "returns true when arg is :windows and RUBY_PLATFORM contains 'mswin'" do
-diff --git a/spec/guards/user_spec.rb b/spec/guards/user_spec.rb
-new file mode 100644
-index 0000000..ba58503
---- /dev/null
-+++ b/spec/guards/user_spec.rb
-@@ -0,0 +1,35 @@
-+require File.dirname(__FILE__) + '/../spec_helper'
-+require 'mspec/guards/user'
-+
-+describe Object, "#as_user" do
-+  before :each do
-+    @guard = UserGuard.new
-+    UserGuard.stub!(:new).and_return(@guard)
-+    ScratchPad.clear
-+  end
-+
-+  it "yields when the Process.euid is not 0" do
-+    Process.stub!(:euid).and_return(501)
-+    as_user { ScratchPad.record :yield }
-+    ScratchPad.recorded.should == :yield
-+  end
-+
-+  it "does not yield when the Process.euid is 0" do
-+    Process.stub!(:euid).and_return(0)
-+    as_user { ScratchPad.record :yield }
-+    ScratchPad.recorded.should_not == :yield
-+  end
-+
-+  it "sets the name of the guard to :as_user" do
-+    as_user { }
-+    @guard.name.should == :as_user
-+  end
-+
-+  it "calls #unregister even when an exception is raised in the guard block" do
-+    @guard.should_receive(:match?).and_return(true)
-+    @guard.should_receive(:unregister)
-+    lambda do
-+      as_user { raise Exception }
-+    end.should raise_error(Exception)
-+  end
-+end
-diff --git a/spec/helpers/infinity_spec.rb b/spec/helpers/infinity_spec.rb
-new file mode 100644
-index 0000000..4a11fac
---- /dev/null
-+++ b/spec/helpers/infinity_spec.rb
-@@ -0,0 +1,8 @@
-+require File.dirname(__FILE__) + '/../spec_helper'
-+require 'mspec/helpers/infinity'
-+
-+describe Object, "#infinity_value" do
-+  it "returns Infinity" do
-+    infinity_value.infinite?.should == 1
-+  end
-+end
-diff --git a/spec/helpers/nan_spec.rb b/spec/helpers/nan_spec.rb
-new file mode 100644
-index 0000000..3df2814
---- /dev/null
-+++ b/spec/helpers/nan_spec.rb
-@@ -0,0 +1,8 @@
-+require File.dirname(__FILE__) + '/../spec_helper'
-+require 'mspec/helpers/nan'
-+
-+describe Object, "#nan_value" do
-+  it "returns NaN" do
-+    nan_value.nan?.should be_true
-+  end
-+end
-diff --git a/spec/helpers/ruby_exe_spec.rb b/spec/helpers/ruby_exe_spec.rb
-index 88e953e..c667ab2 100644
---- a/spec/helpers/ruby_exe_spec.rb
-+++ b/spec/helpers/ruby_exe_spec.rb
-@@ -46,6 +46,11 @@ describe "#ruby_exe_options" do
-     @script.ruby_exe_options(:engine).should == 'ir'
-   end
- 
-+  it "returns 'maglev-ruby' when passed :engine and RUBY_NAME is 'maglev'" do
-+    Object.const_set :RUBY_NAME, 'maglev'
-+    @script.ruby_exe_options(:engine).should == 'maglev-ruby'
-+  end
-+
-   it "returns RUBY_NAME + $(EXEEXT) when passed :name" do
-     bin = RUBY_NAME + (Config::CONFIG['EXEEXT'] || Config::CONFIG['exeext'] || '')
-     name = File.join ".", bin
-diff --git a/spec/utils/options_spec.rb b/spec/utils/options_spec.rb
-index c8383f6..7f964a5 100644
---- a/spec/utils/options_spec.rb
-+++ b/spec/utils/options_spec.rb
-@@ -587,6 +587,15 @@ describe "The -t, --target TARGET option" do
-     end
-   end
- 
-+  it "sets the target to 'maglev' with TARGET 'm' or 'maglev'" do
-+    ["-t", "--target"].each do |opt|
-+      ["m", "maglev"].each do |t|
-+        @options.parse [opt, t]
-+        @config[:target].should == "maglev-ruby"
-+      end
-+    end
-+  end
-+
-   it "sets the target to TARGET" do
-     ["-t", "--target"].each do |opt|
-       @options.parse [opt, "whateva"]
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-changes/attachments/20090828/63d9829a/attachment-0001.html>


More information about the macruby-changes mailing list