class HashHelper
Public Class Methods
compare(expected, actual)
click to toggle source
Compare two hashes. Returns a hash with keys :ok
, :missing
, :unexpected
, :changed
.
# File lib/helpers/hash_helper.rb, line 5 def self.compare(expected, actual) result = { :missing => {}, :unexpected => {}, :changed => {}, :ok => {}, } expected.each_pair do |key_expected, value_expected| if actual.include?(key_expected) value_actual = actual[key_expected] if value_actual == value_expected result[:ok][key_expected] = value_expected else result[:changed][key_expected] = {:expected => value_expected, :actual => value_actual} end else result[:missing][key_expected] = value_expected end end actual.each_pair do |key_actual, value_actual| next if expected.include?(key_actual) result[:unexpected][key_actual] = value_actual end result end