Passes if actual includes expected. This works for collections and Strings.
You can also pass in multiple args
and it will only pass if all args
are found in collection.
# File lib/spec/matchers/include.rb, line 19
def include(*expected)
Matcher.new :include, *expected do |*_expected_|
match do |actual|
helper(actual, *_expected_)
end
def helper(actual, *_expected_)
_expected_.each do |expected|
if actual.is_a?(Hash)
if expected.is_a?(Hash)
expected.each_pair do |k,v|
return false unless actual[k] == v
end
else
return false unless actual.has_key?(expected)
end
else
return false unless actual.include?(expected)
end
end
true
end
end
end