Sha256: 728a4a7e924029675c321b9f2e687005d0fb092ff1bc796404246c90374da3bf
Contents?: true
Size: 747 Bytes
Versions: 3
Compression:
Stored size: 747 Bytes
Contents
module Spec module DSL class CompositeProcBuilder < Array def initialize(callbacks=[]) push(*callbacks) end def proc(&error_handler) parts = self errors = [] Proc.new do result = parts.collect do |part| begin if part.is_a?(UnboundMethod) part.bind(self).call else instance_eval(&part) end rescue Exception => e if error_handler error_handler.call(e) else errors << e end end end raise errors.first unless errors.empty? result end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
rspec-1.0.8 | lib/spec/dsl/composite_proc_builder.rb |
rspec-1.0.6 | lib/spec/dsl/composite_proc_builder.rb |
rspec-1.0.7 | lib/spec/dsl/composite_proc_builder.rb |