Sha256: 2b11654f98849ea6a30bb090049010f99b032c621ebc4556a5ef37b6de3a498b
Contents?: true
Size: 901 Bytes
Versions: 1
Compression:
Stored size: 901 Bytes
Contents
module Mocktail module Bind # sig intentionally omitted, because the wrapper will cause infinite recursion if certain methods are mocked def self.call(mock, method_name, *args, **kwargs, &blk) # standard:disable Style/ArgumentsForwarding if Mocktail.cabinet.double_for_instance(mock) Object.instance_method(method_name).bind_call(mock, *args, **kwargs, &blk) # standard:disable Style/ArgumentsForwarding elsif (mock.is_a?(Module) || mock.is_a?(Class)) && (type_replacement = TopShelf.instance.type_replacement_if_exists_for(mock)) && (og_method = type_replacement.original_methods&.find { |m| m.name == method_name }) og_method.call(*args, **kwargs, &blk) # standard:disable Style/ArgumentsForwarding else mock.__send__(method_name, *args, **kwargs, &blk) # standard:disable Style/ArgumentsForwarding end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
mocktail-2.0.0 | lib/mocktail/share/bind.rb |