class NRSER::MultipleErrors

A wrapper error around a list of other errors.

Attributes

errors[R]

The individual errors that occurred.

@return [Array<Exception>]

Public Class Methods

new(errors, headline: nil) click to toggle source

Instantiate a new `MultipleErrors`.

Calls superclass method
# File lib/nrser/errors.rb, line 43
    def initialize errors, headline: nil
      @errors = errors
      
      if headline.nil?
        class_counts = NRSER.count_by( errors, &:class ).
          map { |klass, count| "#{ klass } (#{ count })" }.
          join( ', ' )
        
        headline = "#{ errors.count } error(s) occurred - #{ class_counts }"
      end
      
      message = binding.erb <<-END
        <%= headline %>
        
        <% errors.each_with_index do |error, index| %>
        <%= (index.succ.to_s + ".").ljust( 3 ) %> <%= error.message %> (<%= error.class %>):
            <%= error.backtrace.join( $/ ) %>
        <% end %>
        
      END
      
      super message
    end