Skip to content

Instantly share code, notes, and snippets.

@karmi
Created October 21, 2008 12:04
Show Gist options
  • Save karmi/18285 to your computer and use it in GitHub Desktop.
Save karmi/18285 to your computer and use it in GitHub Desktop.
require 'rubygems'
require 'hpricot'
require 'open-uri'
require 'pp'
# doc = Hpricot( open('http://www.unicode.org/cldr/data/charts/summary/cs.html') )
doc = open("cs.html") { |f| Hpricot(f) }
countries = {}
# doc.search("//tr[td='territory']").each do |row|
doc.search("//tr").each do |row|
# puts row.search("td[@class='n']").inner_html
# puts row.search("td[@class='g']").inner_html
# puts "Match" if row.search("td[@class='n']").inner_html.include? 'territory'
# puts row.search("td[@class='n']").inner_html if row.search("td[@class='n']").inner_html =~ /^namesterritory$/
# puts "---\n"
if row.search("td[@class='n']") &&
row.search("td[@class='n']").inner_html =~ /^namesterritory$/ &&
row.search("td[@class='g']").inner_html =~ /^[A-Z]{2}/
code = row.search("td[@class='g']").inner_html
code = code[-code.size, 2]
name = row.search("td[@class='v']").inner_html
countries.store( code.to_sym, name.to_s )
puts "* Found country #{name}"
end
end
output =<<HEAD
{ :cz => {
:countries => {
HEAD
countries.each do |key, value|
output << "\t\t\t:#{key} => '#{value}',\n"
end
output <<<<TAIL
}
}
}
TAIL
File.open('countries.rb', 'w+') { |f| f << output }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment