lib/rspec-spies.rb in rspec-spies-1.2.9 vs lib/rspec-spies.rb in rspec-spies-2.0.0
- old
+ new
@@ -1,49 +1,44 @@
-require 'spec/mocks/proxy'
-Spec::Mocks::Proxy.class_eval do
+require 'rspec/mocks/method_double'
+RSpec::Mocks::MethodDouble.class_eval do
# override defining stubs to record the message was called.
# there's only one line difference from upstream rspec, but can't change it without fully overriding
-
- def define_expected_method(sym)
- unless @proxied_methods.include?(sym)
- visibility_string = "#{visibility(sym)} :#{sym}"
- if target_responds_to?(sym)
- munged_sym = munge(sym)
- target_metaclass.instance_eval do
- alias_method munged_sym, sym if method_defined?(sym)
- end
- @proxied_methods << sym
- end
- target_metaclass.class_eval(<<-EOF, __FILE__, __LINE__)
- def #{sym}(*args, &block)
- __mock_proxy.record_message_received(:#{sym}, args, block) # this is the only line changed by rspec-spies in this method
- __mock_proxy.message_received :#{sym}, *args, &block
- end
- #{visibility_string}
- EOF
- end
+ def define_proxy_method
+ method_name = @method_name
+ visibility_for_method = "#{visibility} :#{method_name}"
+ object_singleton_class.class_eval(<<-EOF, __FILE__, __LINE__)
+ def #{method_name}(*args, &block)
+ __mock_proxy.record_message_received :#{method_name}, *args, &block
+ __mock_proxy.message_received :#{method_name}, *args, &block
+ end
+ #{visibility_for_method}
+ EOF
end
end
-require 'spec/matchers'
-Spec::Matchers.module_eval do
+require 'rspec/matchers'
+RSpec::Matchers.module_eval do
def have_received(sym, &block)
- Spec::Matchers::Matcher.new :have_received, sym, @args, block do |sym, args, block|
+ RSpec::Matchers::Matcher.new :have_received, sym, @args, block do |sym, args, block|
match do |actual|
actual.received_message?(sym, *@args, &block)
end
+
failure_message_for_should do |actual|
- "expected #{actual.inspect} to have received #{sym.inspect} with #{args.inspect}"
+ "expected #{actual.inspect} to have received #{sym.inspect} with #{@args.inspect}"
end
+
failure_message_for_should_not do |actual|
- "expected #{actual.inspect} to not have received #{sym.inspect} with #{args.inspect}, but did"
+ "expected #{actual.inspect} to not have received #{sym.inspect} with #{@args.inspect}, but did"
end
+
description do
"to have received #{sym.inspect} with #{args.inspect}"
end
+
def with(*args)
@args = args
self
end