Module: AbstractReflection

Included in:
Ruby::Reflection
Defined in:
lib/abstract_reflection.rb,
lib/abstract_reflection/mirror.rb,
lib/abstract_reflection/gc_mirror.rb,
lib/abstract_reflection/class_mirror.rb,
lib/abstract_reflection/field_mirror.rb,
lib/abstract_reflection/method_mirror.rb,
lib/abstract_reflection/object_mirror.rb,
lib/abstract_reflection/thread_mirror.rb,
lib/abstract_reflection/compiler_mirror.rb,
lib/abstract_reflection/stack_frame_mirror.rb

Defined Under Namespace

Modules: ClassMethods, ClassMirror, CompilerMirror, FieldMirror, GCMirror, MethodMirror, Mirror, ObjectMirror, StackFrameMirror, ThreadMirror Classes: CapabilitiesExceeded

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



25
26
27
# File 'lib/abstract_reflection.rb', line 25

def self.included(base)
  base.extend(ClassMethods)
end

Instance Method Details

#classesArray<ClassMirror>

This method can be used to query the system for known classes. It is not guaranteed that all possible classes are returned.

Returns:

Raises:



41
42
43
# File 'lib/abstract_reflection.rb', line 41

def classes
  raise CapabilitiesExceeded
end

#engineString

Returns the used implementation of Ruby.

Returns:

  • (String)

    the used implementation of Ruby

Raises:



86
87
88
# File 'lib/abstract_reflection.rb', line 86

def engine
  raise CapabilitiesExceeded
end

#implementations_of(message) ⇒ Array<MethodMirror>

Query the system for implementors of a particular message

Parameters:

  • the (String)

    message name

Returns:

Raises:



63
64
65
# File 'lib/abstract_reflection.rb', line 63

def implementations_of(message)
  raise CapabilitiesExceeded
end

#initialize(object) ⇒ Reflection

Creates a new instance of a Reflection

Parameters:

  • the (Object)

    codebase to work on, e.g. a file or a VM

Returns:

  • (Reflection)

    a new reflection object

Raises:

  • (NotImplementedError)


21
22
23
# File 'lib/abstract_reflection.rb', line 21

def initialize(object)
  raise NotImplementedError, "#{self} should have implemented #initialize"
end

#instances_of(klass) ⇒ Array<ObjectMirror>

Query the system for objects that are direct instances of the given class.

Parameters:

Returns:

  • (Array<ObjectMirror>)

    a list of appropriate mirrors for the requested objects

Raises:



49
50
51
# File 'lib/abstract_reflection.rb', line 49

def instances_of(klass)
  raise CapabilitiesExceeded
end

#modulesArray<ClassMirror>

This method can be used to query the system for known modules. It is not guaranteed that all possible modules are returned.

Returns:

Raises:



33
34
35
# File 'lib/abstract_reflection.rb', line 33

def modules
  raise CapabilitiesExceeded
end

#object_by_id(id) ⇒ ObjectMirror, NilClass

Ask the system to find the object with the given object id

Parameters:

  • object (Numeric)

    id

Returns:

Raises:



56
57
58
# File 'lib/abstract_reflection.rb', line 56

def object_by_id(id)
  raise CapabilitiesExceeded
end

#platformString

Returns the platform the system is running on. usually RUBY_PLATFORM.

Returns:

  • (String)

    the platform the system is running on. usually RUBY_PLATFORM

Raises:



81
82
83
# File 'lib/abstract_reflection.rb', line 81

def platform
  raise CapabilitiesExceeded
end

#reflect(o) ⇒ Mirror

Create a mirror for a given object in the system under observation.

Parameters:

Returns:



99
100
101
# File 'lib/abstract_reflection.rb', line 99

def reflect(o)
  Mirror.reflect o, self
end

#senders_of(message) ⇒ Array<MethodMirror>

Query the system for senders of a particular message

Parameters:

  • the (String)

    message name

Returns:

Raises:



70
71
72
# File 'lib/abstract_reflection.rb', line 70

def senders_of(message)
  raise CapabilitiesExceeded
end

#threadsArray<ThreadMirror>

Return the currently active threads in the system

Returns:

Raises:



76
77
78
# File 'lib/abstract_reflection.rb', line 76

def threads
  raise CapabilitiesExceeded
end

#versionString

Returns the version string describing the system.

Returns:

  • (String)

    the version string describing the system

Raises:



91
92
93
# File 'lib/abstract_reflection.rb', line 91

def version
  raise CapabilitiesExceeded
end