class EqualJsonArray
Public Instance Methods
itemEqual?(item1, item2)
click to toggle source
# File lib/eq_json_array.rb, line 3 def itemEqual?(item1, item2) return false unless item1.class == item2.class case item1 when Array arraysMatch?(item1, item2) when Hash hashesMatch?(item1, item2) else item1 == item2 end end
Private Instance Methods
arraysMatch?(actual, expected)
click to toggle source
# File lib/eq_json_array.rb, line 18 def arraysMatch?(actual, expected) return false unless actual.length == expected.length expected.all? do |expectedItem| actual.any? do |candidate| itemEqual?(candidate, expectedItem) end end end
hashesMatch?(actual, expected)
click to toggle source
# File lib/eq_json_array.rb, line 27 def hashesMatch?(actual, expected) return false unless arraysMatch?(actual.keys, expected.keys) expected.all? do |expectedKey, expectedValue| itemEqual?(actual[expectedKey], expectedValue) end end