class Shoulda::Matchers::ActionController::RescueFromMatcher
def description
def description description = "rescues from #{exception}" description << " with ##{expected_method}" if expected_method description end
def expectation
def expectation expectation = "#{controller} to rescue from #{exception}" if expected_method && !method_name_matches? expectation << " with ##{expected_method}" end unless handler_exists? expectation << " but #{controller} does not respond to #{expected_method}" end expectation end
def failure_message
def failure_message "Expected #{expectation}" end
def failure_message_when_negated
def failure_message_when_negated "Did not expect #{expectation}" end
def handler_exists?
def handler_exists? if expected_method.present? controller.respond_to? expected_method, true else true end end
def initialize(exception)
def initialize(exception) @exception = exception end
def matches?(controller)
def matches?(controller) @controller = controller rescues_from_exception? && method_name_matches? && handler_exists? end
def method_name_matches?
def method_name_matches? if expected_method.present? handlers.any? do |handler| handler.last == expected_method end else true end end
def rescues_from_exception?
def rescues_from_exception? @handlers = controller.rescue_handlers.select do |handler| handler.first == exception.to_s end handlers.any? end
def with(method)
def with(method) @expected_method = method self end