I have a class that I want to compare with strings and characters in a case case, so I thought that I was just overriding the === () method for my class, and everything would be golden. However, my === () method is never called during a case statement. Any ideas?
Here is a sample code, and what happens in an irb session:
class A
def initialize(x)
@x=x
end
def ===(other)
puts "in ==="
return true
end
end
irb (main): 010: 0> a = A.new ("hi")
=> #
irb (main): 011: 0> case a
irb (main): 012: 1> when "hi", then 1
irb (main): 013: 1> else 2
irb (main): 014: 1> end
=> 2
(it never prints a message and should always return true) Note that ideally I would like to do
def ===(other)
return @x.===(other)
end
Thanks in advance.