Module: Muack::Proxy

Included in:
MockProxy, StubProxy
Defined in:
lib/muack/proxy.rb

Instance Method Summary collapse

Instance Method Details

#__mock_block_call(defi, actual_args, actual_block) ⇒ Object



7
8
9
10
# File 'lib/muack/proxy.rb', line 7

def __mock_block_call defi, actual_args, actual_block
  # handle block call in injected method, since we need to call origin
  defi # but we still want to know which defi gets dispatched!
end

#__mock_inject_mock_method(target, defi) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/muack/proxy.rb', line 12

def __mock_inject_mock_method target, defi
  mock = self # remember the context
  target.__send__(:define_method, defi.msg){|*actual_args, &actual_block|
    d = mock.__mock_dispatch(defi.msg, actual_args, actual_block)

    ret = if d.original_method
            __send__(d.original_method, *actual_args, &actual_block)
          else
            super(*actual_args, &actual_block)
          end

    if d.block
      d.block.call(ret)
    else
      ret
    end
  }
end