Class: Mirrors::Mirror

Inherits:
Object
  • Object
show all
Defined in:
lib/mirrors/mirror.rb

Overview

The basic mirror

Direct Known Subclasses

FieldMirror, MethodMirror, ObjectMirror, PackageMirror

Instance Method Summary collapse

Constructor Details

#initialize(obj) ⇒ Mirror

Returns a new instance of Mirror.



4
5
6
# File 'lib/mirrors/mirror.rb', line 4

def initialize(obj)
  @subject = obj
end

Instance Method Details

#mirrors?(other) ⇒ Boolean

The equivalent to #==/#eql? for comparison of mirrors against objects

Returns:

  • (Boolean)


22
23
24
# File 'lib/mirrors/mirror.rb', line 22

def mirrors?(other)
  @subject == other
end

#nameObject

A generic representation of the object under observation.



13
14
15
16
17
18
19
# File 'lib/mirrors/mirror.rb', line 13

def name
  if @subject.is_a?(String) || @subject.is_a?(Symbol)
    @subject
  else
    @subject.inspect
  end
end

#reflecteeObject

Accessor to the reflected object



27
28
29
# File 'lib/mirrors/mirror.rb', line 27

def reflectee
  @subject
end

#subject_idObject



8
9
10
# File 'lib/mirrors/mirror.rb', line 8

def subject_id
  @subject.__id__.to_s
end