Report abuse


			
#!/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")