class RSpec::Mocks::InstanceMethodStasher
@private
Attributes
Public Class Methods
# File rspec-mocks/lib/rspec/mocks/instance_method_stasher.rb, line 5 def initialize(object, method) @object = object @method = method # We don't want to create singleton class if it doesn't exist, # so we don't use `object.singleton_class`. @klass = (class << object; self; end) @original_method = nil end
Public Instance Methods
@private
# File rspec-mocks/lib/rspec/mocks/instance_method_stasher.rb, line 18 def method_is_stashed? !!@original_method end
@private
# File rspec-mocks/lib/rspec/mocks/instance_method_stasher.rb, line 30 def restore return unless @original_method @klass.undef_method(@method) if @klass.method_defined?(@method) @klass.define_method(@method, @original_method) @original_method = nil end
@private
# File rspec-mocks/lib/rspec/mocks/instance_method_stasher.rb, line 23 def stash return unless method_defined_directly_on_klass? @original_method ||= ::RSpec::Support.method_handle_for(@object, @method) @klass.undef_method(@method) end