Guest User

Untitled

a guest
Apr 19th, 2018
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.18 KB | None | 0 0
  1. #!/usr/bin/ruby
  2.  
  3. require 'rubygems'
  4. require 'hpricot'
  5. require 'open-uri'
  6. require 'yaml'
  7.  
  8. input = YAML::load_file(ARGV[0])
  9. modules = input['modules']
  10.  
  11. def check_table(group, name)
  12. return if group.nil?
  13.  
  14. group.search('tbody tr').each do |row|
  15. parts = row.search('td')
  16. release = parts[0].search('a').text
  17. if release.match(/^6\.[\dx]/)
  18. date = parts[1].children[0].to_s
  19. return "#{name} - #{release} - #{date}"
  20. end
  21. end
  22. return nil
  23. end
  24.  
  25. official_releases = []
  26. development_releases = []
  27. no_releases = []
  28.  
  29. modules.each do |name, url|
  30. doc = Hpricot(open(url))
  31. release_tables = doc.search('table.releases')
  32. official_release = check_table(release_tables[0], name)
  33. if official_release
  34. official_releases.push(official_release)
  35. else
  36. dev_release = check_table(release_tables[1], name)
  37. if dev_release
  38. development_releases.push(dev_release)
  39. else
  40. no_releases.push(name)
  41. end
  42. end
  43. end
  44.  
  45. puts "Officially Released:"
  46. puts "\t" + official_releases.join("\n\t")
  47.  
  48. puts "\nDevelopment Release Only:"
  49. puts "\t" + development_releases.join("\n\t")
  50.  
  51. puts "\nNo release yet:"
  52. puts "\t" + no_releases.join("\n\t")
Add Comment
Please, Sign In to add comment