Module: RSpec::Support::FuzzyMatcher
- Defined in:
- lib/rspec/support/fuzzy_matcher.rb
Overview
Provides a means to fuzzy-match between two arbitrary objects. Understands array/hash nesting. Uses ‘===` or `==` to perform the matching.
Class Method Summary collapse
Class Method Details
.values_match?(expected, actual) ⇒ Boolean
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/rspec/support/fuzzy_matcher.rb', line 10 def self.values_match?(expected, actual) if Hash === actual return hashes_match?(expected, actual) if Hash === expected elsif Array === expected && Enumerable === actual && !(Struct === actual) return arrays_match?(expected, actual.to_a) end return true if expected == actual begin expected === actual rescue ArgumentError # Some objects, like 0-arg lambdas on 1.9+, raise # ArgumentError for `expected === actual`. false end end |