describe “should_not == vs. should !=”
it do
5.should_not == 6
end # passes
it do
5.should != 6
end # fails
end
describe “should_not == vs. should !=”
it do
5.should_not == 6
end # passes
it do
5.should != 6
end # fails
end
On Jan 18, 2008 10:47 PM, David J. [email protected] wrote:
I’m running the rspec 1.1.2 gem with the corresponding Textmate bundle
The second failure surprises me.
Is != not supported?
Sadly, yes. It is not supported. Because Ruby does not support it.
When you say 5 == 3, what that is really saying is 5.==(3), which is
how we’re able to support 5.should == 3 (becomes 5.should.==(3)).
No such luck w/ !=.
C’est la vie.
Cheers,
David
On 19/01/2008, at 17:36 , David C. wrote:
When you say 5 == 3, what that is really saying is 5.==(3), which is
how we’re able to support 5.should == 3 (becomes 5.should.==(3)).
Would it be true to say that the reason “5.should != 3” won’t work is
that somewhere inside Ruby the x != y comparison is remapped to !(x
== y), and thus the “5.should != 3” is remapped to “not (5.should.==
3)”, with rspec generating a failure when “should” sees false coming
back from the “==” method?
Or am I barking up the wrong tree and potentially misleading dozens
of programmers down the garden path?
Alex
On Jan 20, 2008 8:01 PM, Alex S. [email protected] wrote:
Or am I barking up the wrong tree and potentially misleading dozens
of programmers down the garden path?
I’m 99 44/100% sure that you have it right. The expression x != y is
syntactic sugar for !(x == y) much like x += y is syntactic sugar for
x = (x +y)
The parser turns these into an internal representation (abstract
syntax tree for 1.8, byte-codes for 1.9) which is identical to the
second form.
–
Rick DeNatale
My blog on Ruby
http://talklikeaduck.denhaven2.com/
I’m 99 44/100% sure that you have it right. The expression x != y is
syntactic sugar for !(x == y) much like x += y is syntactic sugar for
x = (x +y)The parser turns these into an internal representation (abstract
syntax tree for 1.8, byte-codes for 1.9) which is identical to the
second form.
In 1.8 it’s just syntactic sugar. But 1.9 provides actual != and !~
methods so that you can override it in situations like this.
(from Ruby-Core: http://www.ruby-forum.com/topic/134608 )
On Jan 21, 2008 8:22 AM, Jim L. [email protected] wrote:
methods so that you can override it in situations like this.
Oooooh. Good to know. We’re not 1.9 compatible yet, but when we get
there we’ll definitely add this!
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.
Sponsor our Newsletter | Privacy Policy | Terms of Service | Remote Ruby Jobs