Module: Ww::Double

Defined in:
lib/ww/double.rb,
lib/ww/double/spy.rb,
lib/ww/double/mock.rb,
lib/ww/double/stub.rb

Defined Under Namespace

Modules: Mock, Spy, Stub Classes: Error, MockError

Constant Summary collapse

MODULES =
[Stub, Mock, Spy].each do |mod|
  include mod
end

Class Method Summary collapse

Class Method Details

.extended(base) ⇒ Object



14
15
16
17
18
# File 'lib/ww/double.rb', line 14

def self.extended(base)
  MODULES.each do |mod|
    base.send(:include, mod::InstanceMethods) if mod.const_defined?("InstanceMethods")
  end
end

.unbound_action(klass, mname, block) ⇒ Object



20
21
22
23
24
25
26
27
28
29
# File 'lib/ww/double.rb', line 20

def unbound_action(klass, mname, block)
  klass.module_eval do
    begin
      define_method(mname, &block)
      instance_method(mname)
    ensure
      remove_method(mname) if instance_methods.include?(mname)
    end
  end
end