class RSpec::Matchers::ExpectedsForMultipleDiffs

Public Instance Methods

colorizer() click to toggle source
# File lib/super_diff/rspec/monkey_patches.rb, line 323
def colorizer
  RSpec::Core::Formatters::ConsoleCodes
end
diffs(differ, actual) click to toggle source

Add extra line breaks in between diffs, and colorize the word “Diff”

# File lib/super_diff/rspec/monkey_patches.rb, line 343
def diffs(differ, actual)
  @expected_list.map do |(expected, diff_label)|
    diff = differ.diff(actual, expected)
    next if diff.strip.empty?
    diff_label + diff
  end.compact.join("\n\n")
end
from(expected) click to toggle source

Add a key for different sides

# File lib/super_diff/rspec/monkey_patches.rb, line 286
def from(expected)
  return expected if self === expected

  text =
    colorizer.wrap("Diff:", SuperDiff.configuration.header_color) +
    "\n\n" +
    colorizer.wrap(
      "┌ (Key) ──────────────────────────┐",
      SuperDiff.configuration.border_color
    ) +
    "\n" +
    colorizer.wrap("│ ", SuperDiff.configuration.border_color) +
    colorizer.wrap(
      "‹-› in expected, not in actual",
      SuperDiff.configuration.expected_color
    ) +
    colorizer.wrap("  │", SuperDiff.configuration.border_color) +
    "\n" +
    colorizer.wrap("│ ", SuperDiff.configuration.border_color) +
    colorizer.wrap(
      "‹+› in actual, not in expected",
      SuperDiff.configuration.actual_color
    ) +
    colorizer.wrap("  │", SuperDiff.configuration.border_color) +
    "\n" +
    colorizer.wrap("│ ", SuperDiff.configuration.border_color) +
    "‹ › in both expected and actual" +
    colorizer.wrap(" │", SuperDiff.configuration.border_color) +
    "\n" +
    colorizer.wrap(
      "└─────────────────────────────────┘",
      SuperDiff.configuration.border_color
    )

  new([[expected, text]])
end
message_with_diff(message, differ, actual) click to toggle source

Add an extra line break

# File lib/super_diff/rspec/monkey_patches.rb, line 330
def message_with_diff(message, differ, actual)
  diff = diffs(differ, actual)

  if diff.empty?
    message
  else
    "#{message.rstrip}\n\n#{diff}"
  end
end