Forum: Ruby Superclass of eigenclass in 1.8.6

Announcement (2017-05-07): is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see and for other Rails- und Ruby-related community platforms.
0d509031a015eb9e28228723963e2628?d=identicon&s=25 Paolo Nusco Perrotta (Guest)
on 2007-04-16 23:55
(Received via mailing list)
Test script:

  class Object
   # good old eigenclass accessor
   def eigenclass; class << self; self; end; end

  class A; end
  class B < A; end
  b =

  p "super of eigen of b: #{b.eigenclass.superclass}"
  p "super of eigen of B: #{B.eigenclass.superclass}"
  p "super of eigen of A: #{A.eigenclass.superclass}"

Ruby 1.8.2 and Ruby 1.9 give the same result:

  MacNusco:/usr/bin nusco$ ruby -v /strange.rb
  ruby 1.8.2 (2004-12-25) [universal-darwin8.0]
  "super of eigen of b: B"
  "super of eigen of B: #<Class:A>"
  "super of eigen of A: #<Class:Object>"

This is what I expected, and consistent with the way method lookup
works for singleton methods in both objects and classes. On the other
hand, Ruby 1.8.5 and 1.8.6 surprised me:

  MacNusco:/ nusco$ ruby -v /strange.rb
  ruby 1.8.6 (2007-03-13 patchlevel 0) [i686-darwin8.9.1]
  "super of eigen of b: #<Class:B>"
  "super of eigen of B: #<Class:Class>"
  "super of eigen of A: #<Class:Class>"

What the heck?

  Paolo Perrotta
  Bologna, Italy
This topic is locked and can not be replied to.