class StringHandler

Public Instance Methods

message() click to toggle source
# File lib/human_reporter.rb, line 166
def message
  result = ""

  if actual.start_with?(expected)
    result << "  Expected: #{expected.inspect}\n"
    result << "    Actual: \"#{expected}\e[#{GREEN}m#{actual[expected.size..-1]}\e[0m\"\n"
  elsif expected.start_with?(actual)
    result << "  Expected: \"#{actual}\e[#{RED}m#{expected[actual.size..-1]}\e[0m\"\n"
    result << "    Actual: #{actual.inspect}\n"
  else
    intersection_index = 0

    1.upto(expected.size) do |index|
      string_prefix = expected[0...index]

      break unless actual.start_with?(string_prefix)

      intersection_index += 1
    end

    intersection = expected[0...intersection_index]

    result << "  Expected: \"#{intersection}\e[#{RED}m#{expected[intersection.size..expected.size-1]}\e[0m\"\n"
    result << "    Actual: \"#{intersection}\e[#{GREEN}m#{actual[intersection.size..actual.size-1]}\e[0m\"\n"
  end

  result
end