class SuperDiff::RSpec::Differ

Public Instance Methods

diff() click to toggle source
# File lib/super_diff/rspec/differ.rb, line 8
def diff
  if worth_diffing?
    diff = SuperDiff::Differs::Main.call(
      expected,
      actual,
      omit_empty: true,
    )
    "\n\n" + diff
  else
    ""
  end
rescue SuperDiff::Errors::NoDifferAvailableError
  ""
end

Private Instance Methods

comparing_inequal_values?() click to toggle source
# File lib/super_diff/rspec/differ.rb, line 31
def comparing_inequal_values?
  !helpers.values_match?(expected, actual)
end
comparing_primitive_values?() click to toggle source
# File lib/super_diff/rspec/differ.rb, line 35
def comparing_primitive_values?
  expected.is_a?(Symbol) ||
    expected.is_a?(Integer) ||
    [true, false, nil].include?(expected)
end
comparing_singleline_strings?() click to toggle source
# File lib/super_diff/rspec/differ.rb, line 41
def comparing_singleline_strings?
  expected.is_a?(String) &&
    actual.is_a?(String) &&
    !expected.include?("\n") &&
    !actual.include?("\n")
end
helpers() click to toggle source
# File lib/super_diff/rspec/differ.rb, line 48
def helpers
  @_helpers ||= Helpers.new
end
worth_diffing?() click to toggle source
# File lib/super_diff/rspec/differ.rb, line 25
def worth_diffing?
  comparing_inequal_values? &&
    !comparing_primitive_values? &&
    !comparing_singleline_strings?
end