class ClassNode

Attributes

klass[R]

Public Class Methods

new(klass) click to toggle source
# File lib/ClassNode.rb, line 4
def initialize klass
        @klass = klass
end

Public Instance Methods

==(other) click to toggle source
# File lib/ClassNode.rb, line 50
def == other
        @klass == other.klass
end
ancestors() click to toggle source
# File lib/ClassNode.rb, line 16
def ancestors
        class_nodes = []
        if @klass
                @klass.ancestors[1..-1].each do |c|
                        if c.class == Class 
                                class_node = ClassNode.new c
                                class_nodes.insert 0, class_node
                        end
                end
        end
        class_nodes
end
descendants() click to toggle source
# File lib/ClassNode.rb, line 29
def descendants
        class_nodes = []
        if @klass
                klasses = ObjectSpace.each_object(Class).select do |c| 
                        c.superclass == @klass 
                end

                klasses.reject! { |c| c.name == nil }

                klasses.sort_by do |c|
                        c.name 
                end
        
                klasses.each do |c|
                        class_node = ClassNode.new c
                        class_nodes << class_node
                end
        end
        class_nodes
end
name() click to toggle source
# File lib/ClassNode.rb, line 8
def name
        if @klass
                @klass.name
        else
                "*Unknown class*"
        end
end