module RSpec::Expectations::ExpectationHelper
def self.check_message(msg)
def self.check_message(msg) unless msg.nil? || msg.respond_to?(:to_str) || msg.respond_to?(:call) RSpec.warning( "ignoring the provided expectation message argument" \ "(#{ msg.inspect }) since it is not a string or a proc" ) end end
def self.handle_failure(matcher, message, failure_message_method)
def self.handle_failure(matcher, message, failure_message_method) message = message.call if message.respond_to?(:call) message ||= matcher.__send__(failure_message_method) if matcher.respond_to?(:diffable?) && matcher.diffable? ::RSpec::Expectations.fail_with message, matcher.expected, matcher.actual else ::RSpec::Expectations.fail_with message end end
def self.modern_matcher_from(matcher)
- Private: -
def self.modern_matcher_from(matcher) LegacyMatcherAdapter::RSpec2.wrap(matcher) || LegacyMatcherAdapter::RSpec1.wrap(matcher) || matcher end
def self.with_matcher(handler, matcher, message)
def self.with_matcher(handler, matcher, message) check_message(message) matcher = modern_matcher_from(matcher) yield matcher ensure ::RSpec::Matchers.last_expectation_handler = handler ::RSpec::Matchers.last_matcher = matcher end