| Class | Spec::DSL::CompositeProcBuilder |
| In: |
lib/spec/dsl/composite_proc_builder.rb
|
| Parent: | Array |
# File lib/spec/dsl/composite_proc_builder.rb, line 4 4: def initialize(callbacks=[]) 5: push(*callbacks) 6: end
# File lib/spec/dsl/composite_proc_builder.rb, line 8
8: def proc(&error_handler)
9: parts = self
10: errors = []
11: Proc.new do
12: result = parts.collect do |part|
13: begin
14: if part.is_a?(UnboundMethod)
15: part.bind(self).call
16: else
17: instance_eval(&part)
18: end
19: rescue Exception => e
20: if error_handler
21: error_handler.call(e)
22: else
23: errors << e
24: end
25: end
26: end
27: raise errors.first unless errors.empty?
28: result
29: end
30: end