Class: Class

Inherits:
Object show all
Defined in:
lib/nano/class/descendents.rb,
lib/nano/class/subclasses.rb,
lib/nano/class/remove_subclasses.rb,
lib/nano/class/remove_descendents.rb

Overview

– Original code from RubyOnRails (www.rubyonrails.com) ++

Instance Method Summary collapse

Instance Method Details

#descendentsObject



6
7
8
9
10
11
12
13
14
# File 'lib/nano/class/descendents.rb', line 6

def descendents
  subclasses = []
  ObjectSpace.each_object( Class ) do |c|
    if c.ancestors.include?( self ) and self != c
      subclasses << c
    end
  end
  return subclasses
end

#remove_descendentsObject



8
9
10
11
12
13
# File 'lib/nano/class/remove_descendents.rb', line 8

def remove_descendents
  self.descendents.each do |subclass|
    Object.send(:remove_const, subclass.name) rescue nil
  end
  ObjectSpace.garbage_collect
end

#remove_subclassesObject



3
# File 'lib/nano/class/remove_subclasses.rb', line 3

alias_method :remove_subclasses, :remove_descendents

#subclassesObject



3
# File 'lib/nano/class/subclasses.rb', line 3

alias_method :subclasses, :descendents