Module: ExceptionExtensions::CauseEnumerable
- Included in:
- StandardErrorCollection
- Defined in:
- lib/exception_extensions/cause_enumerable.rb
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.included(klass) ⇒ Object
3 4 5 6 7 8 9 |
# File 'lib/exception_extensions/cause_enumerable.rb', line 3 def self.included(klass) raise "The ::ExceptionExtensions::CauseEnumerable module is only applicable to ::Exception types" unless klass.ancestors.include?(::Exception) klass.class_eval do include Enumerable attr_reader :causes end end |
Instance Method Details
#each(&block) ⇒ Object
23 24 25 |
# File 'lib/exception_extensions/cause_enumerable.rb', line 23 def each(&block) @causes.each(&block) end |
#initialize(causes, message = nil) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/exception_extensions/cause_enumerable.rb', line 11 def initialize(causes, = nil) validate(causes) @causes = causes if .nil? # generate a message from the collection of causes = @causes.map { |cause| "Exception: #{cause.message}" } = "Multiple exceptions occurred! #{cause_messages.join('. ')}" end # add the message to this exception super() end |