Sha256: 9a213c83fad3b5729a01a2186e76b6664a15edd5bdd2cd2cf8d3417e33ea0edd

Contents?: true

Size: 1.43 KB

Versions: 57

Compression:

Stored size: 1.43 KB

Contents

module ThreadedTestString
  class ::String
    include Doing::Color

    def highlight_errors
      cols = `tput cols`.strip.to_i

      string = dup

      errs = string.scan(/(?<==\n)(?:Failure|Error):.*?(?=\n=+)/m)

      errs.map! do |error|
        err = error.dup

        err.gsub!(%r{^(/.*?/)([^/:]+):(\d+):in (.*?)$}) do
          m = Regexp.last_match
          "#{m[1].white}#{m[2].bold.white}:#{m[3].yellow}:in #{m[4].cyan}"
        end
        err.gsub!(/(Failure|Error): (.*?)\((.*?)\):\n  (.*?)(?=\n)/m) do
          m = Regexp.last_match
          [
            m[1].bold.boldbgred.white,
            m[3].bold.boldbgcyan.white,
            m[2].bold.boldbgyellow.black,
            " #{m[4]} ".bold.boldbgwhite.black.reset
          ].join(':'.boldblack.boldbgblack.reset)
        end
        err.gsub!(/(<.*?>) (was expected to) (.*?)\n( *<.*?>)./m) do
          m = Regexp.last_match
          "#{m[1].bold.green} #{m[2].white} #{m[3].boldwhite.boldbgred.reset}\n#{m[4].bold.white}"
        end
        err.gsub!(/(Finished in) ([\d.]+) (seconds)/) do
          m = Regexp.last_match
          "#{m[1].green} #{m[2].bold.white} #{m[3].green}"
        end
        err.gsub!(/(\d+) (failures)/) do
          m = Regexp.last_match
          "#{m[1].bold.red} #{m[2].red}"
        end
        err.gsub!(/100% passed/) do |m|
          m.bold.green
        end

        err
      end

      errs.join("\n#{('=' * cols).blue}\n")
    end
  end
end

Version data entries

57 entries across 57 versions & 1 rubygems

Version Path
doing-2.1.88 lib/helpers/threaded_tests_string.rb
doing-2.1.87 lib/helpers/threaded_tests_string.rb
doing-2.1.86 lib/helpers/threaded_tests_string.rb
doing-2.1.85 lib/helpers/threaded_tests_string.rb
doing-2.1.84 lib/helpers/threaded_tests_string.rb
doing-2.1.83 lib/helpers/threaded_tests_string.rb
doing-2.1.82 lib/helpers/threaded_tests_string.rb
doing-2.1.81 lib/helpers/threaded_tests_string.rb
doing-2.1.80 lib/helpers/threaded_tests_string.rb
doing-2.1.79 lib/helpers/threaded_tests_string.rb
doing-2.1.78 lib/helpers/threaded_tests_string.rb
doing-2.1.77 lib/helpers/threaded_tests_string.rb
doing-2.1.76 lib/helpers/threaded_tests_string.rb
doing-2.1.75 lib/helpers/threaded_tests_string.rb
doing-2.1.74 lib/helpers/threaded_tests_string.rb
doing-2.1.73 lib/helpers/threaded_tests_string.rb
doing-2.1.72 lib/helpers/threaded_tests_string.rb
doing-2.1.69 lib/helpers/threaded_tests_string.rb
doing-2.1.68 lib/helpers/threaded_tests_string.rb
doing-2.1.66 lib/helpers/threaded_tests_string.rb