Module: RSpec::Support::FuzzyMatcher

Defined in:
opal/opal/rspec/fixes/rspec/support/fuzzy_matcher.rb

Class Method Summary collapse

Class Method Details

.values_match?(expected, actual) ⇒ Boolean

Returns:

  • (Boolean)


3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'opal/opal/rspec/fixes/rspec/support/fuzzy_matcher.rb', line 3

def self.values_match?(expected, actual)
  if Array === expected && Enumerable === actual && !(Struct === actual)
    return arrays_match?(expected, actual.to_a)
  elsif Hash === expected && Hash === actual
    return hashes_match?(expected, actual)
  elsif actual == expected
    return true
  elsif expected.is_a?(Proc)
    return expected == actual
  end

  begin
    expected === actual
  rescue ArgumentError
    # Some objects, like 0-arg lambdas on 1.9+, raise
    # ArgumentError for `expected === actual`.
    false
  end
end