SusSourceSusMock

class Mock

Definitions

def wrap(method, &hook)

Wrap a method, yielding the original method as the first argument, so you can call it from within the hook.

Implementation

def wrap(method, &hook)
	execution_context = Thread.current
	
	@interceptor.define_method(method) do |*arguments, **options, &block|
		if execution_context == Thread.current
			original = proc do |*arguments, **options|
				super(*arguments, **options)
			end
			
			hook.call(original, *arguments, **options, &block) 
		else
			super(*arguments, **options, &block)
		end
	end
end