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