Sha256: 37327b158b8986734ad123685715b4ffc9ec1883c8905489409fe58dda76bc74

Contents?: true

Size: 612 Bytes

Versions: 14

Compression:

Stored size: 612 Bytes

Contents

module Spec
  module DSL
    class CompositeProcBuilder < Array
      def initialize(callbacks=[])
        push(*callbacks)
      end

      def proc(&error_handler)
        parts = self
        Proc.new do
          parts.collect do |part|
            begin
              if part.is_a?(UnboundMethod)
                part.bind(self).call
              else
                instance_eval(&part)
              end
            rescue Exception => e
              raise e unless error_handler
              error_handler.call(e)
              e
            end
          end
        end
      end
    end
  end
end

Version data entries

14 entries across 14 versions & 2 rubygems

Version Path
has_finder-0.1.2 spec/rails/vendor/plugins/rspec/lib/spec/dsl/composite_proc_builder.rb
has_finder-0.1.1 spec/rails/vendor/plugins/rspec/lib/spec/dsl/composite_proc_builder.rb
has_finder-0.1.3 spec/rails/vendor/plugins/rspec/lib/spec/dsl/composite_proc_builder.rb
rspec-1.0.5 lib/spec/dsl/composite_proc_builder.rb
rspec-0.9.1 lib/spec/dsl/composite_proc_builder.rb
rspec-1.0.0 lib/spec/dsl/composite_proc_builder.rb
rspec-1.0.1 lib/spec/dsl/composite_proc_builder.rb
rspec-1.0.4 lib/spec/dsl/composite_proc_builder.rb
rspec-0.9.0 lib/spec/dsl/composite_proc_builder.rb
rspec-0.9.2 lib/spec/dsl/composite_proc_builder.rb
rspec-0.9.3 lib/spec/dsl/composite_proc_builder.rb
rspec-0.9.4 lib/spec/dsl/composite_proc_builder.rb
rspec-1.0.2 lib/spec/dsl/composite_proc_builder.rb
rspec-1.0.3 lib/spec/dsl/composite_proc_builder.rb