Pastie now auto-senses if line-wrap is a bad or good idea. Feedback?
## mark a section (Learn more)
#!/usr/bin/ruby require 'rubygems' require 'hpricot' require 'open-uri' require 'yaml' input = YAML::load_file(ARGV[0]) modules = input['modules'] def check_table(group, name) return if group.nil? group.search('tbody tr').each do |row| parts = row.search('td') release = parts[0].search('a').text if release.match(/^6\.[\dx]/) date = parts[1].children[0].to_s return "#{name} - #{release} - #{date}" end end return nil end official_releases = [] development_releases = [] no_releases = [] modules.each do |name, url| doc = Hpricot(open(url)) release_tables = doc.search('table.releases') official_release = check_table(release_tables[0], name) if official_release official_releases.push(official_release) else dev_release = check_table(release_tables[1], name) if dev_release development_releases.push(dev_release) else no_releases.push(name) end end end puts "Officially Released:" puts "\t" + official_releases.join("\n\t") puts "\nDevelopment Release Only:" puts "\t" + development_releases.join("\n\t") puts "\nNo release yet:" puts "\t" + no_releases.join("\n\t")
This paste will be private.
From the Design Piracy series on my blog: