module Spy::Mock
def included(mod)
def included(mod) method_classes = classes_to_override_methods(mod) mocked_methods = [] [:public, :protected, :private].each do |visibility| get_inherited_methods(method_classes, visibility).each do |method_name| mocked_methods << method_name args = args_for_method(mod.instance_method(method_name)) mod.class_eval <<-DEF_METHOD, __FILE__, __LINE__ + 1 def #{method_name}(#{args}) raise ::Spy::NeverHookedError, "'#{method_name}' was never hooked on mock spy." end DEF_METHOD mod.send(visibility, method_name) end end mod.define_singleton_method(:mocked_methods) do mocked_methods end end