Forum: Ruby inequality test

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
C20fe70f38ab0a5811325b7739c43bfb?d=identicon&s=25 junyoung kim (enjo20)
on 2008-12-20 07:16
(Received via mailing list)
Hi, all

I have tested comparison test by using object concept.

I mean this one

a = 1

a.send('==', 1)
=> true

a.send('>', 0)
==>true

a.send('<', -1)
==> false

With this concept, however, I cannot test inequlity test('!=').

Whenever I try to this test, I met the following error.

irb(main):001:0> a = 1
=> 1
irb(main):002:0> a.send('!=', 0)
NoMethodError: undefined method `!=' for 1:Fixnum
  from (irb):2:in `send'
  from (irb):2
  from :0
irb(main):003:0>

Any idea for this?
D71ee781fc01856cc187c3ce14374c80?d=identicon&s=25 Mikael Høilund (Guest)
on 2008-12-20 07:26
(Received via mailing list)
On Dec 20, 2008, at 07:07, juneng wrote:
> irb(main):002:0> a.send('!=', 0)
> NoMethodError: undefined method `!=' for 1:Fixnum
>   from (irb):2:in `send'
>   from (irb):2
>   from :0

!= is purely syntactical sugar for !(foo == bar). If you send '==' and
negate the result, that'll give you what you want. You can't define
the != method, and you can't make it mean anything other than “the
negation of ==.”
This topic is locked and can not be replied to.