class Pact::CSV::Differ

Attributes

actual[R]
expected[R]
options[R]

Public Class Methods

call(expected, actual, options = {}) click to toggle source
# File lib/pact/csv/differ.rb, line 16
def self.call expected, actual, options = {}
  new(expected, actual, options).call
end
new(expected, actual, options = {}) click to toggle source
# File lib/pact/csv/differ.rb, line 9
def initialize expected, actual, options = {}
  @expected = expected
  @actual = actual
  @options = options
  puts caller.join("\n")
end

Public Instance Methods

call() click to toggle source
# File lib/pact/csv/differ.rb, line 20
def call
  expected_data = ::CSV.parse(expected, headers: true)
  actual_data = ::CSV.parse(actual, headers: true)
  compare(expected_data, actual_data, options)
end
compare(expected, actual, options) click to toggle source
# File lib/pact/csv/differ.rb, line 25
def compare(expected, actual, options)
  expected_table = Cucumber::Ast::Table.new(expected.map(&:to_hash))
  actual_table = Cucumber::Ast::Table.new(actual.map(&:to_hash))
  errors = []
  begin
    p options
    expected_table.diff!(actual_table, surplus_col: options["allow_unexpected_keys"])
  rescue => e
    errors = [e.table]
  end
  errors
end