module RSpec::JsonApi::CompareArray

Public Instance Methods

compare(actual, expected) click to toggle source
# File lib/rspec/json_api/compare_array.rb, line 8
def compare(actual, expected)
  if interface?(expected)
    actual.all? do |actual_elem|
      # Compare actual and expected schema
      return false unless actual_elem.deep_keys == expected[0].deep_keys

      CompareHash.compare(actual_elem, expected[0])
    end
  else
    actual.each_with_index.all? do |actual_elem, index|
      # Compare actual and expected schema
      return false unless actual[index].deep_keys == expected[index].deep_keys

      CompareHash.compare(actual_elem, expected[index])
    end
  end
end

Private Instance Methods

interface?(expected_value) click to toggle source
# File lib/rspec/json_api/compare_array.rb, line 28
def interface?(expected_value)
  expected_value.size == 1 && expected_value[0].is_a?(Hash)
end