Sha256: cd4a0d8fdac371e2ba598e3110f20ae560a59e0f474242da2bd35b8f5986287d

Contents?: true

Size: 363 Bytes

Versions: 3

Compression:

Stored size: 363 Bytes

Contents

module Serinette
  # Gives mixed in classes a method for returning an array of their descendents
  module Descendents
    def self.included(base)
      base.extend(ClassMethods)
    end

    # required for inheritance
    module ClassMethods
      def descendents
        ObjectSpace.each_object(Class).select { |klass| klass < self }
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
serinette-0.0.3 lib/mixins/descendents.rb
serinette-0.0.2 lib/mixins/descendents.rb
serinette-0.0.0.pre lib/mixins/descendents.rb