Module: AbstractReflection::ClassMirror
- Includes:
- ObjectMirror
- Included in:
- Maglev::Reflection::ClassMirror, Ruby::Reflection::ClassMirror
- Defined in:
- lib/abstract_reflection/class_mirror.rb
Overview
A specific mirror for a class, that includes all the capabilites and information we can gather about classes.
Instance Attribute Summary
Attributes included from Mirror
Instance Method Summary collapse
-
#ancestors ⇒ Array<ClassMirror>
The list of ancestors.
-
#class_instance_variables ⇒ FieldMirror
The known class variables.
-
#class_variables ⇒ FieldMirror
The known class variables.
-
#constant(name) ⇒ ClassMirror?
Searches for the named constant in the mirrored namespace.
-
#constants ⇒ Array<FieldMirror>
The constants defined within this class.
-
#instance_variables ⇒ FieldMirror
The known instance variables of this class.
-
#method(name) ⇒ MethodMirror?
The instance method of this class or any of its superclasses that has the specified selector.
-
#method_dictionary ⇒ Object
The method dictionary.
-
#methods ⇒ Array<MethodMirror>
The instance methods of this class.
-
#mixins ⇒ Array<ClassMirror>
The mixins included in the ancestors of this class.
-
#namespace ⇒ ClassMirror
The namespace of this class.
-
#nested_classes ⇒ Array<ClassMirror>
The classes nested within the subject.
-
#nesting ⇒ Array<ClassMirror>
The full nesting.
-
#singleton_class ⇒ ClassMirror
The singleton class of this class.
-
#singleton_class? ⇒ true, false
Predicate to determine whether the subject is a singleton class.
-
#singleton_instance ⇒ ClassMirror
The inverse of #singleton_class.
-
#source_files ⇒ Array<String,File>
The source files this class is defined and/or extended in.
-
#subclasses ⇒ Array<ClassMirror>
The known subclasses.
-
#superclass ⇒ ClassMirror
The direct superclass.
Methods included from ObjectMirror
#instance_eval, #objects_with_references, #path_to, #target_class, #transitive_closure, #variables
Methods included from Mirror
#initialize, #mirrors?, #name, #reflectee
Methods included from Mirror::ClassMethods
#included, #mirror_class, #new, #reflect, #reflect!, #reflects?, #register_mirror
Instance Method Details
#ancestors ⇒ Array<ClassMirror>
The list of ancestors
106 107 108 |
# File 'lib/abstract_reflection/class_mirror.rb', line 106 def ancestors raise CapabilitiesExceeded end |
#class_instance_variables ⇒ FieldMirror
The known class variables.
27 28 29 |
# File 'lib/abstract_reflection/class_mirror.rb', line 27 def class_instance_variables raise CapabilitiesExceeded end |
#class_variables ⇒ FieldMirror
The known class variables.
20 21 22 |
# File 'lib/abstract_reflection/class_mirror.rb', line 20 def class_variables raise CapabilitiesExceeded end |
#constant(name) ⇒ ClassMirror?
Searches for the named constant in the mirrored namespace. May include a colon (::) separated constant path. This may trigger an autoload!
124 125 126 |
# File 'lib/abstract_reflection/class_mirror.rb', line 124 def constant(name) raise CapabilitiesExceeded end |
#constants ⇒ Array<FieldMirror>
The constants defined within this class. This includes nested classes and modules, but also all other kinds of constants. This should not trigger autoloads!
115 116 117 |
# File 'lib/abstract_reflection/class_mirror.rb', line 115 def constants raise CapabilitiesExceeded end |
#instance_variables ⇒ FieldMirror
The known instance variables of this class. Ruby doesn’t have a fixed number of instance variables, but static or runtime anlysis can give us a good idea what kind of variables we can expect.
13 14 15 |
# File 'lib/abstract_reflection/class_mirror.rb', line 13 def instance_variables raise CapabilitiesExceeded end |
#method(name) ⇒ MethodMirror?
The instance method of this class or any of its superclasses that has the specified selector
140 141 142 |
# File 'lib/abstract_reflection/class_mirror.rb', line 140 def method(name) raise CapabilitiesExceeded end |
#method_dictionary ⇒ Object
The method dictionary. Maps names to methods. Should ideally be writable.
146 147 148 |
# File 'lib/abstract_reflection/class_mirror.rb', line 146 def method_dictionary raise CapabilitiesExceeded end |
#methods ⇒ Array<MethodMirror>
The instance methods of this class. To get to the class methods, ask the #singleton_class for its methods.
132 133 134 |
# File 'lib/abstract_reflection/class_mirror.rb', line 132 def methods raise CapabilitiesExceeded end |
#mixins ⇒ Array<ClassMirror>
The mixins included in the ancestors of this class.
85 86 87 |
# File 'lib/abstract_reflection/class_mirror.rb', line 85 def mixins raise CapabilitiesExceeded end |
#namespace ⇒ ClassMirror
The namespace of this class. Provides direct access to the enclosing namespace.
63 64 65 |
# File 'lib/abstract_reflection/class_mirror.rb', line 63 def namespace raise CapabilitiesExceeded end |
#nested_classes ⇒ Array<ClassMirror>
The classes nested within the subject. Should not trigger autloads!
78 79 80 |
# File 'lib/abstract_reflection/class_mirror.rb', line 78 def nested_classes raise CapabilitiesExceeded end |
#nesting ⇒ Array<ClassMirror>
The full nesting.
70 71 72 |
# File 'lib/abstract_reflection/class_mirror.rb', line 70 def nesting raise CapabilitiesExceeded end |
#singleton_class ⇒ ClassMirror
The singleton class of this class
41 42 43 |
# File 'lib/abstract_reflection/class_mirror.rb', line 41 def singleton_class raise CapabilitiesExceeded end |
#singleton_class? ⇒ true, false
Predicate to determine whether the subject is a singleton class
48 49 50 |
# File 'lib/abstract_reflection/class_mirror.rb', line 48 def singleton_class? raise CapabilitiesExceeded end |
#singleton_instance ⇒ ClassMirror
The inverse of #singleton_class.
55 56 57 |
# File 'lib/abstract_reflection/class_mirror.rb', line 55 def singleton_instance raise CapabilitiesExceeded end |
#source_files ⇒ Array<String,File>
The source files this class is defined and/or extended in.
34 35 36 |
# File 'lib/abstract_reflection/class_mirror.rb', line 34 def source_files raise CapabilitiesExceeded end |
#subclasses ⇒ Array<ClassMirror>
The known subclasses
99 100 101 |
# File 'lib/abstract_reflection/class_mirror.rb', line 99 def subclasses raise CapabilitiesExceeded end |
#superclass ⇒ ClassMirror
The direct superclass
92 93 94 |
# File 'lib/abstract_reflection/class_mirror.rb', line 92 def superclass raise CapabilitiesExceeded end |