class Assert::Assertions::CheckException
exception raised utility classes
Attributes
exception[R]
msg[R]
Public Class Methods
new(exceptions, &block)
click to toggle source
# File lib/assert/assertions.rb, line 352 def initialize(exceptions, &block) @exceptions = exceptions # rubocop:disable Lint/SuppressedException # rubocop:disable Lint/RescueException # rubocop:disable Naming/RescuedExceptionsVariableName begin block.call rescue Exception => @exception end # rubocop:enable Lint/SuppressedException # rubocop:enable Lint/RescueException # rubocop:enable Naming/RescuedExceptionsVariableName @msg = "#{exceptions_sentence(@exceptions)} #{exception_details}" end
Public Instance Methods
raised?()
click to toggle source
# File lib/assert/assertions.rb, line 367 def raised? !@exception.nil? && is_one_of?(@exception, @exceptions) end
Private Instance Methods
exception_details(raised_msg = nil, no_raised_msg = nil)
click to toggle source
# File lib/assert/assertions.rb, line 391 def exception_details(raised_msg = nil, no_raised_msg = nil) if @exception backtrace = Assert::Result::Backtrace.new(@exception.backtrace) [ raised_msg, "Class: `#{@exception.class}`", "Message: `#{@exception.message.inspect}`", "---Backtrace---", backtrace.filtered.to_s, "---------------", ] .compact .join("\n") else no_raised_msg end end
exceptions_sentence(exceptions)
click to toggle source
# File lib/assert/assertions.rb, line 383 def exceptions_sentence(exceptions) if exceptions.size <= 1 (exceptions.first || "An").to_s else "#{exceptions[0..-2].join(", ")} or #{exceptions[-1]}" end end
is_one_of?(exception, exceptions)
click to toggle source
# File lib/assert/assertions.rb, line 373 def is_one_of?(exception, exceptions) exceptions.empty? || exceptions.any? do |exp| if exp.instance_of?(Module) exception.is_a?(exp) else exception.class == exp end end end