Project

General

Profile

Feature #8035

singleton class should be included in ancestors

Added by marcandre (Marc-Andre Lafortune) over 7 years ago. Updated over 7 years ago.

Status:
Closed
Priority:
Normal
Target version:
[ruby-core:53171]

Description

I feel it would be consistent if:

k.ancestors.include?(k) #=> always true if k.is_a?(Class)

This is currently the case except for singleton classes:

class << ""; include Enumerable; end.ancestors
# => [Enumerable, String, Comparable, Object, Kernel, BasicObject]
# would be more consistent:
# => [#<Class:#<String:0x0000010113d268>>, Enumerable, String, Comparable, Object, Kernel, BasicObject]

Note that the singleton classes do appear in the ancestors if a module is instead prepended:

class << ""; prepend Enumerable; end.ancestors
# => [Enumerable, #<Class:#<String:0x0000010113d268>>, String, Comparable, Object, Kernel, BasicObject]

Thanks


Related issues

Related to Ruby master - Bug #8166: Since r39628 rspec-mock's and_call_original fail with SystemStackErrorRejectednagachika (Tomoyuki Chikanaga)03/27/2013Actions

Also available in: Atom PDF