Class: BaconExpect::Matcher::RaiseError

Inherits:
Object
  • Object
show all
Defined in:
lib/bacon-expect/matchers/raise_error.rb

Instance Method Summary collapse

Constructor Details

#initialize(error_class = Exception, message = "") ⇒ RaiseError

Returns a new instance of RaiseError.



3
4
5
6
# File 'lib/bacon-expect/matchers/raise_error.rb', line 3

def initialize(error_class = Exception, message = "")
  @error_class = error_class.is_a?(Class) ? error_class : Exception
  @error_message = (error_class.is_a?(String) || error_class.is_a?(Regexp)) ? error_class : message
end

Instance Method Details

#exception_matches(e) ⇒ Object



18
19
20
21
22
23
# File 'lib/bacon-expect/matchers/raise_error.rb', line 18

def exception_matches(e)
  e.is_a?(@error_class) && (
    (@error_message.is_a?(String) && e.message.include?(@error_message)) ||
        (@error_message.is_a?(Regexp) && @error_message.match(e.message))
  )
end

#fail!(subject, negated) ⇒ Object

Raises:



25
26
27
28
29
# File 'lib/bacon-expect/matchers/raise_error.rb', line 25

def fail!(subject, negated)
  show_class = @error_class != Exception
  show_message = !@error_message.is_a?(String) || !@error_message.empty?
  raise FailedExpectation.new(FailMessageRenderer.message_for_raise_error(negated, show_class, @error_class, show_message, @error_message, @rescued_exception))
end

#matches?(value, &block) ⇒ Boolean

Returns:

  • (Boolean)


8
9
10
11
12
13
14
15
16
# File 'lib/bacon-expect/matchers/raise_error.rb', line 8

def matches?(value, &block)
  begin
    block.call
    false
  rescue Exception => e
    @rescued_exception = e
    exception_matches(e)
  end
end