Sha256: d122b2418ff20f1b4cd20267e7e9e458c5cfc343a5132fa75407bf707c946689

Contents?: true

Size: 865 Bytes

Versions: 270

Compression:

Stored size: 865 Bytes

Contents

require 'active_support/core_ext/module/anonymous'
require 'active_support/core_ext/module/reachable'

class Class #:nodoc:
  begin
    ObjectSpace.each_object(Class.new) {}

    def descendants
      descendants = []
      ObjectSpace.each_object(class << self; self; end) do |k|
        descendants.unshift k unless k == self
      end
      descendants
    end
  rescue StandardError # JRuby
    def descendants
      descendants = []
      ObjectSpace.each_object(Class) do |k|
        descendants.unshift k if k < self
      end
      descendants.uniq!
      descendants
    end
  end

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

Version data entries

270 entries across 226 versions & 25 rubygems

Version Path
mdg-1.0.1 vendor/bundle/ruby/2.3.0/gems/activesupport-3.2.22.5/lib/active_support/core_ext/class/subclasses.rb
activesupport-3.2.22.5 lib/active_support/core_ext/class/subclasses.rb
activesupport-3.2.22.4 lib/active_support/core_ext/class/subclasses.rb
activesupport-3.2.22.3 lib/active_support/core_ext/class/subclasses.rb
activesupport-3.2.22.2 lib/active_support/core_ext/class/subclasses.rb
activesupport-3.2.22.1 lib/active_support/core_ext/class/subclasses.rb
classiccms-0.7.5 vendor/bundle/gems/activesupport-3.2.3/lib/active_support/core_ext/class/subclasses.rb
classiccms-0.7.4 vendor/bundle/gems/activesupport-3.2.3/lib/active_support/core_ext/class/subclasses.rb
classiccms-0.7.3 vendor/bundle/gems/activesupport-3.2.3/lib/active_support/core_ext/class/subclasses.rb
active_mailer-0.0.10 test/fixtures/dummyapp_rails_3.2/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.12/lib/active_support/core_ext/class/subclasses.rb
activesupport-3.2.22 lib/active_support/core_ext/class/subclasses.rb
judge-2.0.5 vendor/bundle/ruby/2.1.0/gems/activesupport-3.2.12/lib/active_support/core_ext/class/subclasses.rb
activesupport-3.2.21 lib/active_support/core_ext/class/subclasses.rb
apl-library-0.0.90 vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.18/lib/active_support/core_ext/class/subclasses.rb
apl-library-0.0.90 vendor/bundle/ruby/1.8/gems/activesupport-3.2.18/lib/active_support/core_ext/class/subclasses.rb
apl-library-0.0.90 vendor/bundle/ruby/2.1.0/gems/apl-library-0.0.90/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.18/lib/active_support/core_ext/class/subclasses.rb
apl-library-0.0.90 vendor/bundle/ruby/2.1.0/gems/activesupport-3.2.18/lib/active_support/core_ext/class/subclasses.rb
apl-library-0.0.90 vendor/bundle/ruby/2.1.0/gems/apl-library-0.0.90/vendor/bundle/ruby/1.8/gems/activesupport-3.2.18/lib/active_support/core_ext/class/subclasses.rb
apl-library-0.0.90 vendor/bundle/ruby/2.1.0/gems/apl-library-0.0.90/vendor/bundle/ruby/2.1.0/gems/activesupport-3.2.18/lib/active_support/core_ext/class/subclasses.rb
activesupport-3.2.20 lib/active_support/core_ext/class/subclasses.rb