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