algolia/algoliasearch-jekyll

View on GitHub
scripts/check_flay

Summary

Maintainability
Test Coverage
#!/usr/bin/env ruby

MAX_SCORE = 45

flay_lines = `flay -s ./lib/`.split("\n")

errors = []
flay_lines.each_with_index do |line, index|
  # Skip header
  next if index < 2

  pattern = /^ *(.*): (.*)/
  matches = line.match(pattern)
  next if matches.nil?
  score = matches[1].to_f

  next if score < MAX_SCORE
  errors << {
    score: score,
    file: matches[2]
  }
end

exit 0 if errors.size == 0

puts 'Flay test failed:'
errors.sort_by { |a| a[:score] }.each do |error|
  puts "#{error[:score]} / #{MAX_SCORE} in #{error[:file]}"
end
exit 1