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