21: def execute(options, instance_variables)
22: options.reporter.example_started(self)
23: set_instance_variables_from_hash(instance_variables)
24:
25: @execution_error = nil
26: Timeout.timeout(options.timeout) do
27: begin
28: before_each_example
29: eval_block
30: rescue Exception => e
31: @execution_error ||= e
32: end
33: begin
34: after_each_example
35: rescue Exception => e
36: @execution_error ||= e
37: end
38: end
39:
40: options.reporter.example_finished(self, @execution_error)
41: success = @execution_error.nil? || ExamplePendingError === @execution_error
42: end