[Ironruby-core] should equal in RubySpecs

Jim Deville jdeville at microsoft.com
Wed Jan 7 14:32:23 EST 2009

Along those lines, you have to remember that Ruby has 4 distinct ways to define equality. #eql?, #equal?, #== and #===.  This post covers it: http://probablycorey.wordpress.com/2008/02/26/ruby-equality-equal-eql-and/


From: ironruby-core-bounces at rubyforge.org [mailto:ironruby-core-bounces at rubyforge.org] On Behalf Of Michael Letterle
Sent: Wednesday, January 07, 2009 11:26 AM
To: ironruby-core at rubyforge.org
Subject: Re: [Ironruby-core] should equal in RubySpecs

require 'mspec'
describe "equals" do
  it "compares objects not values" do

    a = "a"
    b = "a"
    c = a

    a.should equal(c)
    a.should_not equal(b)
    a.should == b


On Wed, Jan 7, 2009 at 3:48 AM, Shri Borde <Shri.Borde at microsoft.com<mailto:Shri.Borde at microsoft.com>> wrote:

I noticed this in core\thread\current_spec.rb.

  it "returns the current thread" do

    t = Thread.new { Thread.current }

    t.value.should equal(t)

    Thread.current.should_not equal(t.value)


Is this any different than writing "t.value.should == t"? Is either of them the recommended way? Seems odd to support two ways of writing the exact same thing.



Ironruby-core mailing list
Ironruby-core at rubyforge.org<mailto:Ironruby-core at rubyforge.org>

Michael Letterle
[Polymath Prokrammer]

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://rubyforge.org/pipermail/ironruby-core/attachments/20090107/963af3d6/attachment-0001.html>

More information about the Ironruby-core mailing list