class Class

def subclasses

Foo.subclasses # => [Bar]

class Baz < Bar; end
class Bar < Foo; end
class Foo; end

Returns an array with the direct children of +self+.
def subclasses
  subclasses, chain = [], descendants
  chain.each do |k|
    subclasses << k unless chain.any? { |c| c > k }
  end
  subclasses
end