Top Level Namespace

Defined Under Namespace

Modules: Rspec

Constant Summary collapse

PartialHashMatcher =
Class.new {
  def self.partial_match?(expected, actual)
    actual_slice = actual.slice(*expected.keys)
    if actual_slice.keys == expected.keys
      actual_slice.each do |key, value|
        if value.respond_to?(:to_h) or value.is_a?(Hash)
          return partial_match?(expected[key], value)
        else
          return false unless value == expected[key]
        end
      end
      true
    else
      false
    end
  end
}