Class Spec::DSL::CompositeProcBuilder
In: lib/spec/dsl/composite_proc_builder.rb
Parent: Array

Methods

new   proc  

Public Class methods

[Source]

   # File lib/spec/dsl/composite_proc_builder.rb, line 4
4:       def initialize(callbacks=[])
5:         push(*callbacks)
6:       end

Public Instance methods

[Source]

    # 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

[Validate]