Commit 2f6446f
Changed files (3)
lib
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