Sha256: e21c47d91e54e463a85fea7173bfb5189c8dcaecbbed19ce1f042231049382a6
Contents?: true
Size: 1.43 KB
Versions: 1
Compression:
Stored size: 1.43 KB
Contents
require 'json' module PageSpeed class Parser class << self # parse the response and print it real pretty def parse(result) result = JSON.parse(result) code = result['responseCode'] total_score = result['score'] strategy = result['request']['strategy'] fail(code, result['title']) unless code == 200 result['formattedResults']['ruleResults'].each do |name, rule| score = rule['ruleScore'] colorize(score) puts " #{pad_score(score)} - #{rule['localizedRuleName']}" end colorize(total_score) puts " \nTotal Score: #{total_score}/100 (#{strategy})" decolorize end private # fail with the appropriate code/message def fail(code, title) puts "\033[31m#{title}\033[0m" exit end # pad the score to make it extra readable def pad_score(score) score = score.to_s case score.length when 3 score when 2 ' ' + score when 1 ' ' + score end end # colorize the good the bad and the ugly def colorize(score) case score.to_i when 90..100 print "\033[32m" when 70..89 print "\033[33m" else print "\033[31m" end end # reset colors def decolorize print "\033[0m" end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
pagespeed-0.1.0 | lib/pagespeed/parser.rb |