class Cheffish::RSpec::Matchers::PartiallyMatch
Public Class Methods
new(example, expected)
click to toggle source
# File lib/cheffish/rspec/matchers/partially_match.rb, line 7 def initialize(example, expected) @example = example @expected = expected end
Public Instance Methods
failure_message()
click to toggle source
# File lib/cheffish/rspec/matchers/partially_match.rb, line 17 def failure_message "expected #{@actual} to match #{@expected}" end
failure_message_when_negated()
click to toggle source
# File lib/cheffish/rspec/matchers/partially_match.rb, line 21 def failure_message_when_negated "expected #{@actual} not to match #{@expected}" end
matches?(actual)
click to toggle source
# File lib/cheffish/rspec/matchers/partially_match.rb, line 12 def matches?(actual) @actual = actual partially_matches_values(@expected, actual) end
Protected Instance Methods
partially_matches_arrays(expected, actual)
click to toggle source
# File lib/cheffish/rspec/matchers/partially_match.rb, line 49 def partially_matches_arrays(expected, actual) expected.all? { |e| actual.any? { |a| partially_matches_values(e, a) } } end
partially_matches_hashes(expected, actual)
click to toggle source
# File lib/cheffish/rspec/matchers/partially_match.rb, line 45 def partially_matches_hashes(expected, actual) expected.all? { |key, value| partially_matches_values(value, actual[key]) } end
partially_matches_values(expected, actual)
click to toggle source
# File lib/cheffish/rspec/matchers/partially_match.rb, line 27 def partially_matches_values(expected, actual) if Hash === actual return partially_matches_hashes(expected, actual) if Hash === expected || Array === expected elsif Array === expected && Enumerable === actual && !(Struct === actual) return partially_matches_arrays(expected, actual) end return true if actual == expected begin expected === actual rescue ArgumentError # Some objects, like 0-arg lambdas on 1.9+, raise # ArgumentError for `expected === actual`. false end end