From 0ec76099e06ac342261473fcaa88db4f58a2a8b3 Mon Sep 17 00:00:00 2001 From: Xavier Noria Date: Sun, 17 Jan 2010 00:07:08 +0100 Subject: AS guide: documents Object#subclasses_of --- .../source/active_support_core_extensions.textile | 34 ++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/railties/guides/source/active_support_core_extensions.textile b/railties/guides/source/active_support_core_extensions.textile index 32d9d4c413..ee1c83673c 100644 --- a/railties/guides/source/active_support_core_extensions.textile +++ b/railties/guides/source/active_support_core_extensions.textile @@ -329,6 +329,40 @@ h5. +remove_subclasses_of+ The method +remove_subclasses_of+ receives an arbitrary number of class objects and removes their subclasses. It is a wrapper of +Class#remove_class+ explained with more details in "Class Removal FIX THIS LINK":FIXME. +h5. +subclasses_of+ + +The method +subclasses_of+ receives an arbitrary number of class objects and returns all their reachable descendants as a single array: + + +class C; end +subclasses_of(C) # => [] + +subclasses_of(Integer) # => [Bignum, Fixnum] + +module M + class A; end + class B1 < A; end + class B2 < A; end +end + +module N + class C < M::B1; end +end + +subclasses_of(M::A) # => [N::C, M::B2, M::B1] + + +The order in which these classes are returned is unspecified. The returned collection may have duplicates: + + +subclasses_of(Numeric, Integer) +# => [Bignum, Float, Fixnum, Integer, Date::Infinity, Rational, BigDecimal, Bignum, Fixnum] + + +See also +Class#subclasses+ in "Extensions to +Class+ FIXME THIS LINK":FIXME. + +NOTE: Defined in +active_support/core_ext/object/extending.rb+. + h4. Instance Variables Active Support provides several methods to ease access to instance variables. -- cgit v1.2.3