class Any
Represents a predicate that checks if the subject matches any of the given predicates.
Definitions
def initialize(predicates)
Initialize a new Any predicate.
Signature
-
parameter
predicatesArray The predicates to check.
Implementation
def initialize(predicates)
@predicates = predicates
end
def print(output)
Print a representation of this predicate.
Signature
-
parameter
outputOutput The output target.
Implementation
def print(output)
first = true
output.write("have any {")
@predicates.each do |predicate|
if first
first = false
else
output.write(", ")
end
output.write(predicate)
end
output.write("}")
end
def call(assertions, subject)
Evaluate this predicate against a subject.
Signature
-
parameter
assertionsAssertions The assertions instance to use.
-
parameter
subjectObject The subject to evaluate.
Implementation
def call(assertions, subject)
assertions.nested(self) do |assertions|
@predicates.each do |predicate|
predicate.call(assertions, subject)
end
if assertions.passed.any?
# We don't care about any failures in this case, as long as one of the values passed:
assertions.failed.clear
else
# Nothing passed, so we failed:
assertions.assert(false, "could not find any matching value")
end
end
end