diff --git a/.gitignore b/.gitignore index a3095ab3..39f54dc3 100644 --- a/.gitignore +++ b/.gitignore @@ -11,6 +11,7 @@ spec/reports test/tmp test/version_tmp tmp +vendor/cache Gemfile.lock out/ diff --git a/.rubocop.yml b/.rubocop.yml index 40b099bf..abdc5b48 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -6,9 +6,6 @@ Style/StringLiterals: Enabled: true EnforcedStyle: single_quotes -RequireParentheses: - Enabled: true - Naming/FileName: Enabled: false diff --git a/.travis.yml b/.travis.yml index 8e415bf9..03afed4d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,6 +4,8 @@ rvm: - 2.4.3 - 2.5.0 - 2.6.0 + - 2.7.0 + - ruby-head git: depth: 10 @@ -16,6 +18,8 @@ sudo: false cache: bundler matrix: + allow_failures: + - rvm: ruby-head include: - script: bundle exec rake rubocop - rvm: 2.6.0 + rvm: 2.7.0 diff --git a/lib/html-proofer.rb b/lib/html-proofer.rb index 1900fa15..d828b453 100644 --- a/lib/html-proofer.rb +++ b/lib/html-proofer.rb @@ -2,7 +2,7 @@ def require_all(path) dir = File.join(File.dirname(__FILE__), path) - Dir[File.join(dir, '*.rb')].each do |f| + Dir[File.join(dir, '*.rb')].sort.each do |f| require f end end diff --git a/lib/html-proofer/log.rb b/lib/html-proofer/log.rb index 27177ce0..01d4fbb9 100644 --- a/lib/html-proofer/log.rb +++ b/lib/html-proofer/log.rb @@ -7,16 +7,27 @@ module HTMLProofer class Log include Yell::Loggable + STDOUT_LEVELS = %i[debug info warn].freeze + STDERR_LEVELS = %i[error fatal].freeze + def initialize(log_level) @logger = Yell.new(format: false, \ name: 'HTMLProofer', \ level: "gte.#{log_level}") do |l| - l.adapter :stdout, level: %i[debug info warn] - l.adapter :stderr, level: %i[error fatal] + l.adapter :stdout, level: 'lte.warn' + l.adapter :stderr, level: 'gte.error' end end def log(level, message) + log_with_color(level, message) + end + + def log_with_color(level, message) + @logger.send level, colorize(level, message) + end + + def colorize(level, message) color = case level when :debug :cyan @@ -28,15 +39,8 @@ def log(level, message) :red end - log_with_color(level, color, message) - end - - def log_with_color(level, color, message) - @logger.send level, colorize(color, message) - end - - def colorize(color, message) - if $stdout.isatty && $stderr.isatty + if (STDOUT_LEVELS.include?(level) && $stdout.isatty) || \ + (STDERR_LEVELS.include?(level) && $stderr.isatty) Rainbow(message).send(color) else message diff --git a/lib/html-proofer/runner.rb b/lib/html-proofer/runner.rb index e10568f1..1d7f2b9d 100644 --- a/lib/html-proofer/runner.rb +++ b/lib/html-proofer/runner.rb @@ -45,7 +45,7 @@ def run end if @failures.empty? - @logger.log_with_color :info, :green, 'HTML-Proofer finished successfully.' + @logger.log :info, 'HTML-Proofer finished successfully.' else print_failed_tests end @@ -169,7 +169,7 @@ def print_failed_tests sorted_failures.sort_and_report count = @failures.length failure_text = pluralize(count, 'failure', 'failures') - raise @logger.colorize :red, "HTML-Proofer found #{failure_text}!" + raise @logger.colorize :fatal, "HTML-Proofer found #{failure_text}!" end end end