I'm getting a very weird result using case/when.

$ cat test.rb
def test(a)
  case a.class
  when Class
    puts "class"
  when String
    puts "string"
  else
    puts "else"
  end
end

test(Float)
test("hello")
test(42)
$ ruby test.rb
class
class
class
$ ruby --version
ruby 1.8.4 (2005-12-24) [i686-linux]

I would have exepected the following output:

class
string
else

Does anyone have an explanation about this issue?

Cheers,

-- 
Nicolas DesprÔ‘