lib/caricature/messenger.rb in caricature-0.7.6 vs lib/caricature/messenger.rb in caricature-0.7.7
- old
+ new
@@ -1,68 +1,68 @@
-module Caricature
-
- # A base class to encapsulate method invocation
- class Messenger
-
- # contains the recorder for recording method calls
- attr_accessor :recorder
-
- # the real instance of the isolated subject
- # used to forward calls in partial mocks
- attr_reader :instance
-
- # the expecations that have been set for the isolation
- attr_reader :expectations
-
- # creates a new instance of this messaging strategy
- def initialize(expectations, instance=nil)
- @instance, @expectations = instance, expectations
- end
-
- # deliver the message to the receiving isolation
- def deliver(method_name, return_type, *args, &b)
-
- internal_deliver(:instance, method_name, return_type, *args, &b)
- end
-
- # deliver the message to class of the receiving isolation
- def deliver_to_class(method_name, return_type, *args, &b)
- internal_deliver(:class, method_name, return_type, *args, &b)
- end
-
- protected
-
- # template method for looking up the expectation and/or returning a value
- def internal_deliver(mode, method_name, return_type, *args, &b)
- raise NotImplementedError.new("Override in an implementing class")
- end
-
- private
- def record_call(method_name, mode, expectation, *args, &b)
- recorder.record_call method_name, mode, expectation, *args, &b if recorder
- end
-
- end
-
- # Encapsulates sending messages to Ruby isolations
- class RubyMessenger < Messenger
-
- protected
-
- # implementation of the template method for looking up the expectation and/or returning a value
- def internal_deliver(mode, method_name, return_type, *args, &b)
- exp = expectations.find(method_name, mode, *args)
- bl = record_call(method_name, mode, exp, *args, &b)
- if exp
- block = exp.block || b
- res = instance.__send__(method_name, *args, &block) if exp.super_before?
- res = exp.execute *args, &bl
- res = instance.__send__(method_name, *args, &block) if !exp.super_before? and exp.call_super?
- res
- else
- nil
- end
- end
-
- end
-
+module Caricature
+
+ # A base class to encapsulate method invocation
+ class Messenger
+
+ # contains the recorder for recording method calls
+ attr_accessor :recorder
+
+ # the real instance of the isolated subject
+ # used to forward calls in partial mocks
+ attr_reader :instance
+
+ # the expecations that have been set for the isolation
+ attr_reader :expectations
+
+ # creates a new instance of this messaging strategy
+ def initialize(expectations, instance=nil)
+ @instance, @expectations = instance, expectations
+ end
+
+ # deliver the message to the receiving isolation
+ def deliver(method_name, return_type, *args, &b)
+
+ internal_deliver(:instance, method_name, return_type, *args, &b)
+ end
+
+ # deliver the message to class of the receiving isolation
+ def deliver_to_class(method_name, return_type, *args, &b)
+ internal_deliver(:class, method_name, return_type, *args, &b)
+ end
+
+ protected
+
+ # template method for looking up the expectation and/or returning a value
+ def internal_deliver(mode, method_name, return_type, *args, &b)
+ raise NotImplementedError.new("Override in an implementing class")
+ end
+
+ private
+ def record_call(method_name, mode, expectation, *args, &b)
+ recorder.record_call method_name, mode, expectation, *args, &b if recorder
+ end
+
+ end
+
+ # Encapsulates sending messages to Ruby isolations
+ class RubyMessenger < Messenger
+
+ protected
+
+ # implementation of the template method for looking up the expectation and/or returning a value
+ def internal_deliver(mode, method_name, return_type, *args, &b)
+ exp = expectations.find(method_name, mode, *args)
+ bl = record_call(method_name, mode, exp, *args, &b)
+ if exp
+ block = exp.block || b
+ res = instance.__send__(method_name, *args, &block) if exp.super_before?
+ res = exp.execute *args, &bl
+ res = instance.__send__(method_name, *args, &block) if !exp.super_before? and exp.call_super?
+ res
+ else
+ nil
+ end
+ end
+
+ end
+
end
\ No newline at end of file