Class: Spy::Instance::Strategy::Wrap

Inherits:
Object
  • Object
show all
Defined in:
lib/spy/instance/strategy/wrap.rb

Instance Method Summary collapse

Constructor Details

#initialize(spy) ⇒ Wrap



5
6
7
# File 'lib/spy/instance/strategy/wrap.rb', line 5

def initialize(spy)
  @spy = spy
end

Instance Method Details

#applyObject



9
10
11
# File 'lib/spy/instance/strategy/wrap.rb', line 9

def apply
  @spy.attach_to(@spy.original.owner)
end

#undoObject



13
14
15
16
17
18
19
20
# File 'lib/spy/instance/strategy/wrap.rb', line 13

def undo
  spy = @spy
  spy.original.owner.class_eval do
    remove_method spy.original.name
    define_method spy.original.name, spy.original
    send(spy.visibility, spy.original.name)
  end
end