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