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.41 lib/helpers/threaded_tests_string.rb
doing-2.1.40 lib/helpers/threaded_tests_string.rb
doing-2.1.39 lib/helpers/threaded_tests_string.rb
doing-2.1.38 lib/helpers/threaded_tests_string.rb
doing-2.1.37 lib/helpers/threaded_tests_string.rb
doing-2.1.36 lib/helpers/threaded_tests_string.rb
doing-2.1.35 lib/helpers/threaded_tests_string.rb
doing-2.1.34 lib/helpers/threaded_tests_string.rb
doing-2.1.33 lib/helpers/threaded_tests_string.rb
doing-2.1.32 lib/helpers/threaded_tests_string.rb
doing-2.1.31pre lib/helpers/threaded_tests_string.rb
doing-2.1.30 lib/helpers/threaded_tests_string.rb
doing-2.1.29 lib/helpers/threaded_tests_string.rb
doing-2.1.28 lib/helpers/threaded_tests_string.rb
doing-2.1.27 lib/helpers/threaded_tests_string.rb
doing-2.1.26 lib/helpers/threaded_tests_string.rb
doing-2.1.25 lib/helpers/threaded_tests_string.rb