Class: ClassNode
- Inherits:
-
Object
- Object
- ClassNode
- Defined in:
- lib/ClassNode.rb
Instance Attribute Summary collapse
-
#klass ⇒ Object
readonly
Returns the value of attribute klass.
Instance Method Summary collapse
- #==(other) ⇒ Object
- #ancestors ⇒ Object
- #descendants ⇒ Object
-
#initialize(klass) ⇒ ClassNode
constructor
A new instance of ClassNode.
- #name ⇒ Object
Constructor Details
#initialize(klass) ⇒ ClassNode
Returns a new instance of ClassNode.
4 5 6 |
# File 'lib/ClassNode.rb', line 4 def initialize klass @klass = klass end |
Instance Attribute Details
#klass ⇒ Object (readonly)
Returns the value of attribute klass.
2 3 4 |
# File 'lib/ClassNode.rb', line 2 def klass @klass end |
Instance Method Details
#==(other) ⇒ Object
50 51 52 |
# File 'lib/ClassNode.rb', line 50 def == other @klass == other.klass end |
#ancestors ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 |
# 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 ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# 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 ⇒ Object
8 9 10 11 12 13 14 |
# File 'lib/ClassNode.rb', line 8 def name if @klass @klass.name else "*Unknown class*" end end |