def trigger(*block_arguments)
      unless block_value
        raise ExpectationError.new("No block value is currently set for expectation #{to_s}")
      end
      unless block_value.respond_to?(:call)
        raise ExpectationError.new("Can't apply trigger to #{block_value} for expectation #{to_s}")
      end
      block_value.call *block_arguments
    end
def trigger(*block_arguments)
      unless block_value
        raise ExpectationError.new("No block value is currently set for expectation #{to_s}")
      end
      unless block_value.respond_to?(:call)
        raise ExpectationError.new("Can't apply trigger to #{block_value} for expectation #{to_s}")
      end
      block_value.call *block_arguments
    end
Convenience method: assumes +block_value+ is set, and is set to a Proc
 (or anything that responds to 'call')

   light_event = @traffic_light.trap.subscribe(:light_changes)

   # This code will meet the expectation:
   @traffic_light.subscribe :light_changes do |color|
     puts color
   end

 The color-handling block is now stored in <tt>light_event.block_value</tt>

 The block can be invoked like this:

   light_event.trigger :red

 See Mock#trap and Mock#expects for information on using expectation objects
 after they are set.