lib/core/facets/class/subclasses.rb in facets-2.8.4 vs lib/core/facets/class/subclasses.rb in facets-2.9.0.pre.1

- old
+ new

@@ -1,26 +1,52 @@ -require 'facets/class/descendents' +class Class + + if defined?(Class.__subclasses__) # Rubinius + + # Returns an array with the direct children of +self+. + # + # Integer.subclasses # => [Fixnum, Bignum] + # + alias_method :subclasses, :__subclasses__ + + else + + # Returns an array with the direct children of +self+. + # + # Integer.subclasses # => [Fixnum, Bignum] + # + def subclasses + list = [] + ObjectSpace.each_object(Class) do |c| + list.unshift c if c.superclass == self + end + list.uniq + end + + end + +end