Pastie now auto-senses if line-wrap is a bad or good idea. Feedback?
## mark a section (Learn more)
require 'rubygems' require 'hpricot' require 'open-uri' platform = ARGV[0] || "ps2" url = "http://www.metacritic.com/games/#{platform}/scores/" html = Hpricot.parse(open(url).read) grades = {} html.search("//table[@class='index']/tr").each { |tr| rank,name,year,score = tr.search("td//text()").map { |td| td.to_s } rank = rank.to_i score = score.to_i year = year.to_i if !grades.has_key?(year) grades[year] = [] end grades[year] << score } grades.each_pair { |year,scores| grades[year] = scores.sort.reverse.slice(0,10) } grades.keys.map { |year| [year,grades[year].inject(0) { |i,n| i += n }/grades[year].size.to_f,grades[year].size] }.sort_by { |result| result[0]}.each { |year,score,count| puts "#{year}\t#{score}" }
This paste will be private.
From the Design Piracy series on my blog: