class Spec::Matchers::RaiseError
:nodoc:
def actual_error
def actual_error @actual_error.nil? ? " but nothing was raised" : ", got #{@actual_error.inspect}" end
def description
def description "raise #{expected_error}" end
def expected_error
def expected_error case @expected_message when nil @expected_error when Regexp "#{@expected_error} with message matching #{@expected_message.inspect}" else "#{@expected_error} with #{@expected_message.inspect}" end end
def failure_message
def failure_message return "expected #{expected_error}#{actual_error}" if @raised_other || !@raised_expected_error end
def initialize(error_or_message=Exception, message=nil)
def initialize(error_or_message=Exception, message=nil) if String === error_or_message @expected_error = Exception @expected_message = error_or_message else @expected_error = error_or_message @expected_message = message end end
def matches?(proc)
def matches?(proc) @raised_expected_error = false @raised_other = false begin proc.call rescue @expected_error => @actual_error if @expected_message.nil? @raised_expected_error = true else case @expected_message when Regexp if @expected_message =~ @actual_error.message @raised_expected_error = true else @raised_other = true end else if @expected_message == @actual_error.message @raised_expected_error = true else @raised_other = true end end end rescue => @actual_error @raised_other = true ensure return @raised_expected_error end end
def negative_failure_message
def negative_failure_message "expected no #{expected_error}#{actual_error}" end