From: Ryan Davis Date: 2008-05-24T03:02:13+09:00 Subject: Re: Module.===(X,X) is false On May 23, 2008, at 10:44 , calfeld@mac.com wrote: > This surprises me, and denies me the ability to compare a class (an > instance of Class) to its possible values (instances of Class) in a > case statement. Yup. That's just the way that Module#=== works. % irb >> class X; end => nil >> X === X => false >> Object === X => true >> Module === X => true >> Class === X => true >> case X >> when Class then puts :class >> when Module then puts :module >> end class => nil you could do: case X.name when "X" then # ... end or, safer: case obj when Module then case obj.name when "X" then # ... end # ... end