From: eden li Date: 2006-10-10T16:34:52+09:00 Subject: Does case/when really use ===? Can someone explain why my class's === method is never called in the following code? irb(main):001:0> class C; def ===(k); puts "===(#{k.inspect}) called"; true; end; end => nil irb(main):002:0> case C.new; when String; 'is a String'; else; 'not a String'; end => "not a String" I expected "===(String) called" to be printed out somewhere, somewhat like: irb(main):003:0> C.new === String ===(String) called => true Am I misunderstanding how case/when works?