class RSpec::Matchers::BuiltIn::StartAndEndWith
def failure_message_for_should
def failure_message_for_should "expected #{@actual.inspect} to #{self.class.name.split('::').last.sub(/With/,'').downcase} with #{@expected.inspect}" end
def failure_message_for_should_not
def failure_message_for_should_not "expected #{@actual.inspect} not to #{self.class.name.split('::').last.sub(/With/,'').downcase} with #{@expected.inspect}" end
def initialize(*expected)
def initialize(*expected) @expected = expected.length == 1 ? expected.first : expected end
def matches?(actual)
def matches?(actual) @actual = actual.respond_to?(:[]) ? actual : (raise ArgumentError.new("#{actual.inspect} does not respond to :[]")) begin @expected.respond_to?(:length) ? subset_matches?(@expected, @actual) : element_matches?(@expected, @actual) rescue ArgumentError raise ArgumentError.new("#{actual.inspect} does not have ordered elements") end end