Commit 2f6446f

mo khan <mo@mokhan.ca>
2013-12-01 22:25:03
extract intercept method and push invocation down to interceptor chain.
1 parent 8a9dffa
lib/spank/interceptor_chain.rb
@@ -1,3 +1,4 @@
+module Spank
   class InterceptorChain
     def initialize(interceptors = [])
       @interceptors = interceptors
@@ -10,4 +11,11 @@
     def each(&block)
       @interceptors.each(&block)
     end
+
+    def intercept(invocation)
+      each do |interceptor|
+        interceptor.intercept(invocation)
+      end
+    end
   end
+end
lib/spank/ioc.rb
@@ -3,6 +3,7 @@ module Spank
     def self.bind_to(container)
       @@container = container
     end
+
     def self.resolve(symbol)
       @@container.resolve(symbol)
     end
lib/spank/proxy.rb
@@ -29,9 +29,7 @@ module Spank
       Module.new do
         define_method(method.to_sym) do |*args, &block|
           invocation = create_invocation_for(method, args, block)
-          @interceptor_chain.each do |interceptor|
-            interceptor.intercept(invocation)
-          end
+          @interceptor_chain.intercept(invocation)
           invocation.result
         end
       end