class Needle::InterceptorChainBuilder::InterceptorChainElement

A single element in an interceptor chain. Each interceptor object is wrapped in an instance of one of these. Calling process_next on a given chain element, invokes the process method on the corresponding interceptor, with the next element in the chain being passed in.

Public Class Methods

new( interceptor ) click to toggle source

Create a new InterceptorChainElement that wraps the given interceptor.

# File lib/needle/interceptor-chain.rb, line 40
def initialize( interceptor )
  @interceptor = interceptor
end

Public Instance Methods

next(=( next_obj )) click to toggle source

Set the next element in the interceptor chain to the given object. This must be either an InterceptorChainElement instance of a ProxyObjectChainElement instance.

# File lib/needle/interceptor-chain.rb, line 47
def next=( next_obj )
  @next_obj = next_obj
end
process_next( context ) click to toggle source

Invokes the process method of the interceptor encapsulated by this object, with the next element in the chain being passed to it.

# File lib/needle/interceptor-chain.rb, line 53
def process_next( context )
  if @next_obj.nil?
    raise Bug,
      "[BUG] interceptor chain should always terminate with proxy"
  end
  @interceptor.process( @next_obj, context )
end