direct_address 0.0.9 → 0.0.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (256) hide show
  1. data/.gitignore +1 -1
  2. data/VERSION +1 -1
  3. data/direct_address.gemspec +251 -4
  4. data/generators/direct_address/templates/tasks/harvest.rake +5 -16
  5. data/lib/direct_address/harvester/countries.yml +495 -0
  6. data/lib/direct_address/harvester/geoname.rb +8 -78
  7. data/lib/direct_address/harvester/regions/AD.yml +14 -0
  8. data/lib/direct_address/harvester/regions/AE.yml +8 -0
  9. data/lib/direct_address/harvester/regions/AF.yml +33 -0
  10. data/lib/direct_address/harvester/regions/AG.yml +9 -0
  11. data/lib/direct_address/harvester/regions/AI.yml +2 -0
  12. data/lib/direct_address/harvester/regions/AL.yml +17 -0
  13. data/lib/direct_address/harvester/regions/AM.yml +15 -0
  14. data/lib/direct_address/harvester/regions/AN.yml +2 -0
  15. data/lib/direct_address/harvester/regions/AO.yml +39 -0
  16. data/lib/direct_address/harvester/regions/AQ.yml +2 -0
  17. data/lib/direct_address/harvester/regions/AR.yml +49 -0
  18. data/lib/direct_address/harvester/regions/AS.yml +2 -0
  19. data/lib/direct_address/harvester/regions/AT.yml +19 -0
  20. data/lib/direct_address/harvester/regions/AU.yml +17 -0
  21. data/lib/direct_address/harvester/regions/AW.yml +2 -0
  22. data/lib/direct_address/harvester/regions/AX.yml +2 -0
  23. data/lib/direct_address/harvester/regions/AZ.yml +71 -0
  24. data/lib/direct_address/harvester/regions/BA.yml +2 -0
  25. data/lib/direct_address/harvester/regions/BB.yml +13 -0
  26. data/lib/direct_address/harvester/regions/BD.yml +10 -0
  27. data/lib/direct_address/harvester/regions/BE.yml +25 -0
  28. data/lib/direct_address/harvester/regions/BF.yml +91 -0
  29. data/lib/direct_address/harvester/regions/BG.yml +53 -0
  30. data/lib/direct_address/harvester/regions/BH.yml +5 -0
  31. data/lib/direct_address/harvester/regions/BI.yml +31 -0
  32. data/lib/direct_address/harvester/regions/BJ.yml +26 -0
  33. data/lib/direct_address/harvester/regions/BL.yml +2 -0
  34. data/lib/direct_address/harvester/regions/BM.yml +9 -0
  35. data/lib/direct_address/harvester/regions/BN.yml +5 -0
  36. data/lib/direct_address/harvester/regions/BO.yml +2 -0
  37. data/lib/direct_address/harvester/regions/BR.yml +57 -0
  38. data/lib/direct_address/harvester/regions/BS.yml +12 -0
  39. data/lib/direct_address/harvester/regions/BT.yml +9 -0
  40. data/lib/direct_address/harvester/regions/BV.yml +2 -0
  41. data/lib/direct_address/harvester/regions/BW.yml +19 -0
  42. data/lib/direct_address/harvester/regions/BY.yml +4 -0
  43. data/lib/direct_address/harvester/regions/BZ.yml +8 -0
  44. data/lib/direct_address/harvester/regions/CA.yml +16 -0
  45. data/lib/direct_address/harvester/regions/CC.yml +2 -0
  46. data/lib/direct_address/harvester/regions/CD.yml +23 -0
  47. data/lib/direct_address/harvester/regions/CF.yml +30 -0
  48. data/lib/direct_address/harvester/regions/CG.yml +23 -0
  49. data/lib/direct_address/harvester/regions/CH.yml +51 -0
  50. data/lib/direct_address/harvester/regions/CI.yml +2 -0
  51. data/lib/direct_address/harvester/regions/CK.yml +2 -0
  52. data/lib/direct_address/harvester/regions/CL.yml +12 -0
  53. data/lib/direct_address/harvester/regions/CM.yml +4 -0
  54. data/lib/direct_address/harvester/regions/CN.yml +64 -0
  55. data/lib/direct_address/harvester/regions/CO.yml +64 -0
  56. data/lib/direct_address/harvester/regions/CR.yml +9 -0
  57. data/lib/direct_address/harvester/regions/CS.yml +2 -0
  58. data/lib/direct_address/harvester/regions/CU.yml +17 -0
  59. data/lib/direct_address/harvester/regions/CV.yml +16 -0
  60. data/lib/direct_address/harvester/regions/CX.yml +2 -0
  61. data/lib/direct_address/harvester/regions/CY.yml +8 -0
  62. data/lib/direct_address/harvester/regions/CZ.yml +34 -0
  63. data/lib/direct_address/harvester/regions/DE.yml +33 -0
  64. data/lib/direct_address/harvester/regions/DJ.yml +11 -0
  65. data/lib/direct_address/harvester/regions/DK.yml +6 -0
  66. data/lib/direct_address/harvester/regions/DM.yml +2 -0
  67. data/lib/direct_address/harvester/regions/DO.yml +31 -0
  68. data/lib/direct_address/harvester/regions/DZ.yml +51 -0
  69. data/lib/direct_address/harvester/regions/EC.yml +24 -0
  70. data/lib/direct_address/harvester/regions/EE.yml +31 -0
  71. data/lib/direct_address/harvester/regions/EG.yml +28 -0
  72. data/lib/direct_address/harvester/regions/EH.yml +2 -0
  73. data/lib/direct_address/harvester/regions/ER.yml +2 -0
  74. data/lib/direct_address/harvester/regions/ES.yml +35 -0
  75. data/lib/direct_address/harvester/regions/ET.yml +5 -0
  76. data/lib/direct_address/harvester/regions/FI.yml +11 -0
  77. data/lib/direct_address/harvester/regions/FJ.yml +7 -0
  78. data/lib/direct_address/harvester/regions/FK.yml +2 -0
  79. data/lib/direct_address/harvester/regions/FM.yml +9 -0
  80. data/lib/direct_address/harvester/regions/FO.yml +2 -0
  81. data/lib/direct_address/harvester/regions/FR.yml +45 -0
  82. data/lib/direct_address/harvester/regions/GA.yml +21 -0
  83. data/lib/direct_address/harvester/regions/GB.yml +438 -0
  84. data/lib/direct_address/harvester/regions/GD.yml +8 -0
  85. data/lib/direct_address/harvester/regions/GE.yml +3 -0
  86. data/lib/direct_address/harvester/regions/GF.yml +2 -0
  87. data/lib/direct_address/harvester/regions/GG.yml +2 -0
  88. data/lib/direct_address/harvester/regions/GH.yml +13 -0
  89. data/lib/direct_address/harvester/regions/GI.yml +2 -0
  90. data/lib/direct_address/harvester/regions/GL.yml +2 -0
  91. data/lib/direct_address/harvester/regions/GM.yml +13 -0
  92. data/lib/direct_address/harvester/regions/GN.yml +73 -0
  93. data/lib/direct_address/harvester/regions/GP.yml +2 -0
  94. data/lib/direct_address/harvester/regions/GQ.yml +9 -0
  95. data/lib/direct_address/harvester/regions/GR.yml +63 -0
  96. data/lib/direct_address/harvester/regions/GS.yml +2 -0
  97. data/lib/direct_address/harvester/regions/GT.yml +24 -0
  98. data/lib/direct_address/harvester/regions/GU.yml +2 -0
  99. data/lib/direct_address/harvester/regions/GW.yml +19 -0
  100. data/lib/direct_address/harvester/regions/GY.yml +12 -0
  101. data/lib/direct_address/harvester/regions/HK.yml +2 -0
  102. data/lib/direct_address/harvester/regions/HM.yml +2 -0
  103. data/lib/direct_address/harvester/regions/HN.yml +20 -0
  104. data/lib/direct_address/harvester/regions/HR.yml +3 -0
  105. data/lib/direct_address/harvester/regions/HT.yml +12 -0
  106. data/lib/direct_address/harvester/regions/HU.yml +53 -0
  107. data/lib/direct_address/harvester/regions/ID.yml +54 -0
  108. data/lib/direct_address/harvester/regions/IE.yml +47 -0
  109. data/lib/direct_address/harvester/regions/IL.yml +7 -0
  110. data/lib/direct_address/harvester/regions/IM.yml +2 -0
  111. data/lib/direct_address/harvester/regions/IN.yml +69 -0
  112. data/lib/direct_address/harvester/regions/IO.yml +2 -0
  113. data/lib/direct_address/harvester/regions/IQ.yml +19 -0
  114. data/lib/direct_address/harvester/regions/IR.yml +30 -0
  115. data/lib/direct_address/harvester/regions/IS.yml +23 -0
  116. data/lib/direct_address/harvester/regions/IT.yml +41 -0
  117. data/lib/direct_address/harvester/regions/JE.yml +2 -0
  118. data/lib/direct_address/harvester/regions/JM.yml +15 -0
  119. data/lib/direct_address/harvester/regions/JO.yml +13 -0
  120. data/lib/direct_address/harvester/regions/JP.yml +106 -0
  121. data/lib/direct_address/harvester/regions/KE.yml +16 -0
  122. data/lib/direct_address/harvester/regions/KG.yml +14 -0
  123. data/lib/direct_address/harvester/regions/KH.yml +19 -0
  124. data/lib/direct_address/harvester/regions/KI.yml +2 -0
  125. data/lib/direct_address/harvester/regions/KM.yml +5 -0
  126. data/lib/direct_address/harvester/regions/KN.yml +16 -0
  127. data/lib/direct_address/harvester/regions/KP.yml +20 -0
  128. data/lib/direct_address/harvester/regions/KR.yml +29 -0
  129. data/lib/direct_address/harvester/regions/KW.yml +6 -0
  130. data/lib/direct_address/harvester/regions/KY.yml +2 -0
  131. data/lib/direct_address/harvester/regions/KZ.yml +22 -0
  132. data/lib/direct_address/harvester/regions/LA.yml +34 -0
  133. data/lib/direct_address/harvester/regions/LB.yml +2 -0
  134. data/lib/direct_address/harvester/regions/LC.yml +13 -0
  135. data/lib/direct_address/harvester/regions/LI.yml +23 -0
  136. data/lib/direct_address/harvester/regions/LK.yml +10 -0
  137. data/lib/direct_address/harvester/regions/LR.yml +27 -0
  138. data/lib/direct_address/harvester/regions/LS.yml +21 -0
  139. data/lib/direct_address/harvester/regions/LT.yml +3 -0
  140. data/lib/direct_address/harvester/regions/LU.yml +7 -0
  141. data/lib/direct_address/harvester/regions/LV.yml +37 -0
  142. data/lib/direct_address/harvester/regions/LY.yml +26 -0
  143. data/lib/direct_address/harvester/regions/MA.yml +16 -0
  144. data/lib/direct_address/harvester/regions/MC.yml +2 -0
  145. data/lib/direct_address/harvester/regions/MD.yml +51 -0
  146. data/lib/direct_address/harvester/regions/ME.yml +24 -0
  147. data/lib/direct_address/harvester/regions/MF.yml +2 -0
  148. data/lib/direct_address/harvester/regions/MG.yml +8 -0
  149. data/lib/direct_address/harvester/regions/MH.yml +2 -0
  150. data/lib/direct_address/harvester/regions/MK.yml +2 -0
  151. data/lib/direct_address/harvester/regions/ML.yml +19 -0
  152. data/lib/direct_address/harvester/regions/MM.yml +28 -0
  153. data/lib/direct_address/harvester/regions/MN.yml +52 -0
  154. data/lib/direct_address/harvester/regions/MO.yml +2 -0
  155. data/lib/direct_address/harvester/regions/MP.yml +2 -0
  156. data/lib/direct_address/harvester/regions/MQ.yml +2 -0
  157. data/lib/direct_address/harvester/regions/MR.yml +32 -0
  158. data/lib/direct_address/harvester/regions/MS.yml +5 -0
  159. data/lib/direct_address/harvester/regions/MT.yml +2 -0
  160. data/lib/direct_address/harvester/regions/MU.yml +13 -0
  161. data/lib/direct_address/harvester/regions/MV.yml +7 -0
  162. data/lib/direct_address/harvester/regions/MW.yml +54 -0
  163. data/lib/direct_address/harvester/regions/MX.yml +34 -0
  164. data/lib/direct_address/harvester/regions/MY.yml +28 -0
  165. data/lib/direct_address/harvester/regions/MZ.yml +21 -0
  166. data/lib/direct_address/harvester/regions/NA.yml +15 -0
  167. data/lib/direct_address/harvester/regions/NC.yml +2 -0
  168. data/lib/direct_address/harvester/regions/NE.yml +2 -0
  169. data/lib/direct_address/harvester/regions/NF.yml +2 -0
  170. data/lib/direct_address/harvester/regions/NG.yml +75 -0
  171. data/lib/direct_address/harvester/regions/NI.yml +17 -0
  172. data/lib/direct_address/harvester/regions/NL.yml +24 -0
  173. data/lib/direct_address/harvester/regions/NO.yml +42 -0
  174. data/lib/direct_address/harvester/regions/NP.yml +15 -0
  175. data/lib/direct_address/harvester/regions/NR.yml +2 -0
  176. data/lib/direct_address/harvester/regions/NU.yml +2 -0
  177. data/lib/direct_address/harvester/regions/NZ.yml +18 -0
  178. data/lib/direct_address/harvester/regions/OM.yml +10 -0
  179. data/lib/direct_address/harvester/regions/PA.yml +23 -0
  180. data/lib/direct_address/harvester/regions/PE.yml +51 -0
  181. data/lib/direct_address/harvester/regions/PF.yml +2 -0
  182. data/lib/direct_address/harvester/regions/PG.yml +3 -0
  183. data/lib/direct_address/harvester/regions/PH.yml +74 -0
  184. data/lib/direct_address/harvester/regions/PK.yml +8 -0
  185. data/lib/direct_address/harvester/regions/PL.yml +28 -0
  186. data/lib/direct_address/harvester/regions/PM.yml +3 -0
  187. data/lib/direct_address/harvester/regions/PN.yml +2 -0
  188. data/lib/direct_address/harvester/regions/PR.yml +2 -0
  189. data/lib/direct_address/harvester/regions/PS.yml +2 -0
  190. data/lib/direct_address/harvester/regions/PT.yml +41 -0
  191. data/lib/direct_address/harvester/regions/PW.yml +2 -0
  192. data/lib/direct_address/harvester/regions/PY.yml +19 -0
  193. data/lib/direct_address/harvester/regions/QA.yml +11 -0
  194. data/lib/direct_address/harvester/regions/RE.yml +2 -0
  195. data/lib/direct_address/harvester/regions/RO.yml +78 -0
  196. data/lib/direct_address/harvester/regions/RS.yml +2 -0
  197. data/lib/direct_address/harvester/regions/RU.yml +160 -0
  198. data/lib/direct_address/harvester/regions/RW.yml +19 -0
  199. data/lib/direct_address/harvester/regions/SA.yml +14 -0
  200. data/lib/direct_address/harvester/regions/SB.yml +7 -0
  201. data/lib/direct_address/harvester/regions/SC.yml +22 -0
  202. data/lib/direct_address/harvester/regions/SD.yml +28 -0
  203. data/lib/direct_address/harvester/regions/SE.yml +36 -0
  204. data/lib/direct_address/harvester/regions/SG.yml +2 -0
  205. data/lib/direct_address/harvester/regions/SH.yml +2 -0
  206. data/lib/direct_address/harvester/regions/SI.yml +2 -0
  207. data/lib/direct_address/harvester/regions/SJ.yml +2 -0
  208. data/lib/direct_address/harvester/regions/SK.yml +11 -0
  209. data/lib/direct_address/harvester/regions/SL.yml +7 -0
  210. data/lib/direct_address/harvester/regions/SM.yml +14 -0
  211. data/lib/direct_address/harvester/regions/SN.yml +25 -0
  212. data/lib/direct_address/harvester/regions/SO.yml +21 -0
  213. data/lib/direct_address/harvester/regions/SR.yml +12 -0
  214. data/lib/direct_address/harvester/regions/ST.yml +4 -0
  215. data/lib/direct_address/harvester/regions/SV.yml +16 -0
  216. data/lib/direct_address/harvester/regions/SY.yml +15 -0
  217. data/lib/direct_address/harvester/regions/SZ.yml +7 -0
  218. data/lib/direct_address/harvester/regions/TC.yml +2 -0
  219. data/lib/direct_address/harvester/regions/TD.yml +33 -0
  220. data/lib/direct_address/harvester/regions/TF.yml +2 -0
  221. data/lib/direct_address/harvester/regions/TG.yml +13 -0
  222. data/lib/direct_address/harvester/regions/TH.yml +150 -0
  223. data/lib/direct_address/harvester/regions/TJ.yml +4 -0
  224. data/lib/direct_address/harvester/regions/TK.yml +2 -0
  225. data/lib/direct_address/harvester/regions/TL.yml +14 -0
  226. data/lib/direct_address/harvester/regions/TM.yml +7 -0
  227. data/lib/direct_address/harvester/regions/TN.yml +25 -0
  228. data/lib/direct_address/harvester/regions/TO.yml +2 -0
  229. data/lib/direct_address/harvester/regions/TR.yml +110 -0
  230. data/lib/direct_address/harvester/regions/TT.yml +6 -0
  231. data/lib/direct_address/harvester/regions/TV.yml +2 -0
  232. data/lib/direct_address/harvester/regions/TW.yml +2 -0
  233. data/lib/direct_address/harvester/regions/TZ.yml +53 -0
  234. data/lib/direct_address/harvester/regions/UA.yml +31 -0
  235. data/lib/direct_address/harvester/regions/UG.yml +111 -0
  236. data/lib/direct_address/harvester/regions/UM.yml +2 -0
  237. data/lib/direct_address/harvester/regions/US.yml +103 -0
  238. data/lib/direct_address/harvester/regions/UY.yml +20 -0
  239. data/lib/direct_address/harvester/regions/UZ.yml +24 -0
  240. data/lib/direct_address/harvester/regions/VA.yml +2 -0
  241. data/lib/direct_address/harvester/regions/VC.yml +8 -0
  242. data/lib/direct_address/harvester/regions/VE.yml +27 -0
  243. data/lib/direct_address/harvester/regions/VG.yml +2 -0
  244. data/lib/direct_address/harvester/regions/VI.yml +2 -0
  245. data/lib/direct_address/harvester/regions/VN.yml +49 -0
  246. data/lib/direct_address/harvester/regions/VU.yml +7 -0
  247. data/lib/direct_address/harvester/regions/WF.yml +2 -0
  248. data/lib/direct_address/harvester/regions/WS.yml +2 -0
  249. data/lib/direct_address/harvester/regions/YE.yml +14 -0
  250. data/lib/direct_address/harvester/regions/YT.yml +2 -0
  251. data/lib/direct_address/harvester/regions/ZA.yml +19 -0
  252. data/lib/direct_address/harvester/regions/ZM.yml +9 -0
  253. data/lib/direct_address/harvester/regions/ZW.yml +10 -0
  254. data/spec/direct_address_spec.rb +1 -0
  255. metadata +274 -14
  256. data/lib/direct_address/harvester/extend_string.rb +0 -85
@@ -1,97 +1,27 @@
1
- require 'net/http'
2
- require 'uri'
3
- require 'yaml'
4
1
  require 'rubygems'
5
- require 'hpricot'
6
- require File.dirname(__FILE__) + '/extend_string.rb'
7
2
 
8
3
  class Geoname
9
- URL = 'http://www.geonames.org'
10
- COUNTRIES_PATH = '/countries/'
11
- REGION_PATH = '/{ALPHA2}/administrative-division-{country}.html'
12
4
 
13
5
  class InvalidModelError < StandardError; end
14
6
 
15
7
  def self.retrieve_to_db
16
8
  raise(InvalidModelError, 'Country and Region models must be generated before populating the database. Please make sure the gem is installed into a rails project then try running: script/generate direct_address') if !gem_integrated?
17
- countries = Geoname.retrieve_countries
18
- countries.each do |country|
19
- c = Country.find_by_abbreviation(country[0]) || Country.create(:abbreviation => country[0], :name => country[1])
20
- regions = Geoname.retrieve_regions(country[0], country[1])
21
- puts "Successfully retrieved #{country[1]} :: found #{regions.size} regions"
9
+ countries = YAML.load_file(File.join(File.dirname(__FILE__), 'countries.yml'))
10
+ for country in countries
11
+ abbrev = country[0]
12
+ name = country[1]
13
+ c = Country.find_or_create_by_abbreviation(:abbreviation => abbrev, :name => name)
14
+ regions = YAML.load_file(File.join(File.dirname(__FILE__), 'regions', "#{abbrev}.yml")) || []
22
15
  for region in regions
23
- if c.regions.count(:conditions => ['lower(name) = ?', region]) == 0
24
- c.regions.create(:name => region)
25
- end
16
+ r = c.regions.find_or_create_by_name(:name => region)
17
+ puts "Created country / region: #{name} / #{region}"
26
18
  end
27
19
  end
28
20
  end
29
21
 
30
- def self.retrieve_all(path)
31
- countries = Geoname.retrieve_countries(path)
32
- countries.each do |country|
33
- regions = Geoname.retrieve_regions(country[0], country[1], path)
34
- puts "Successfully retrieved #{country[1]} :: found #{regions.size} regions"
35
- end
36
- end
37
-
38
-
39
- def self.retrieve_countries(filepath = nil)
40
- response = Geoname.get_body("#{Geoname::URL}#{Geoname::COUNTRIES_PATH}")
41
- countries = Geoname.parse_countries response
42
- if filepath
43
- Geoname.export("#{filepath}/countries.yml", countries )
44
- end
45
- countries
46
- end
47
-
48
- def self.retrieve_regions(alpha2, country, filepath = nil)
49
- path = Geoname::REGION_PATH.gsub('{ALPHA2}', alpha2).gsub('{country}', Geoname.url_format(country))
50
- response = Geoname.get_body("#{Geoname::URL}#{path}")
51
- regions = Geoname.parse_regions response
52
- if filepath
53
- Geoname.export("#{filepath}/regions/#{alpha2}.yml", regions)
54
- end
55
- regions
56
- end
57
22
 
58
23
  private
59
24
 
60
- def self.parse_countries(body)
61
- doc = Hpricot(body)
62
- (doc/"#countries td > a[@href]").collect do |elem|
63
- href = elem.attributes['href']
64
- fips = nil
65
- if (href =~ /countries\/(.+)\//)
66
- fips = $1
67
- end
68
- [fips, elem.innerHTML]
69
- end
70
- end
71
-
72
- def self.parse_regions(body)
73
- doc = Hpricot(body)
74
- (doc/"#subdivtable tr td:nth-child(4) a[@href]").collect {|elem| elem.innerHTML}
75
- end
76
-
77
- def self.url_format(string)
78
- string.downcase.gsub(' ', '-').removeaccents
79
- end
80
-
81
- def self.get_body(url)
82
- url = URI.parse(url)
83
- request = Net::HTTP::Get.new(url.path)
84
- response = Net::HTTP.start(url.host, url.port) {|http| http.request(request)}
85
- response.body
86
- end
87
-
88
- def self.export(path, content)
89
- FileUtils.mkdir_p(File.dirname(path))
90
- File.open(path, 'w+' ) do |out|
91
- YAML.dump(content,out)
92
- end
93
- end
94
-
95
25
  def self.gem_integrated?
96
26
  begin
97
27
  c = Country.new(:name => 'test', :abbreviation => 't')
@@ -0,0 +1,14 @@
1
+ ---
2
+ - Canillo
3
+ - Canillo
4
+ - Encamp
5
+ - Encamp
6
+ - La Massana
7
+ - La Massana
8
+ - Ordino
9
+ - Ordino
10
+ - "Sant Julia de L\xC3\xB2ria"
11
+ - Andorra la Vella
12
+ - Andorra la Vella
13
+ - Escaldes-Engordany
14
+ - Les Escaldes
@@ -0,0 +1,8 @@
1
+ ---
2
+ - "'Ajman"
3
+ - Abu Zaby
4
+ - Abu Dhabi
5
+ - Dubayy
6
+ - Al Fujayrah
7
+ - Ash Shariqah
8
+ - Umm al Qaywayn
@@ -0,0 +1,33 @@
1
+ ---
2
+ - Balkh province
3
+ - Bamian province
4
+ - Badghis province
5
+ - Badakhshan province
6
+ - Baghlan province
7
+ - Farah province
8
+ - Faryab province
9
+ - Ghazni province
10
+ - Ghowr province
11
+ - Helmand province
12
+ - Herat province
13
+ - Jowzjan province
14
+ - Kabul province
15
+ - Kabul
16
+ - Kandahar province
17
+ - Kapisa province
18
+ - Kondoz province
19
+ - Konar province
20
+ - Laghman province
21
+ - Lowgar province
22
+ - Nangrahar province
23
+ - Nimruz province
24
+ - Oruzgan province
25
+ - Parwan province
26
+ - kabul
27
+ - Paktia province
28
+ - Paktika province
29
+ - Samangan province
30
+ - Sar-e Pol province
31
+ - Takhar province
32
+ - Wardak province
33
+ - Zabol province
@@ -0,0 +1,9 @@
1
+ ---
2
+ - Saint George
3
+ - Saint Philip
4
+ - Saint John
5
+ - Saint John's
6
+ - Saint Paul
7
+ - Saint Mary
8
+ - Saint Peter
9
+ - Barbuda
@@ -0,0 +1,2 @@
1
+ --- []
2
+
@@ -0,0 +1,17 @@
1
+ ---
2
+ - Berat
3
+ - Berat
4
+ - Diber
5
+ - Durres
6
+ - Elbasan
7
+ - Elbasan
8
+ - Fier
9
+ - Fier
10
+ - Gjirokaster
11
+ - Korce
12
+ - Kukes
13
+ - Lezhe
14
+ - Shkoder
15
+ - "Shkod\xC3\xABr"
16
+ - Tirane
17
+ - Vlore
@@ -0,0 +1,15 @@
1
+ ---
2
+ - Aragatsotn
3
+ - Ashtarak
4
+ - Armavir
5
+ - Armavir
6
+ - Ararat
7
+ - Artashat
8
+ - Lorri
9
+ - Shirak
10
+ - Gyumri
11
+ - Tavush
12
+ - Ijevan
13
+ - Vayots' Dzor
14
+ - Yerevan
15
+ - Yerevan
@@ -0,0 +1,2 @@
1
+ --- []
2
+
@@ -0,0 +1,39 @@
1
+ ---
2
+ - Bengo
3
+ - Caxito
4
+ - Benguela province
5
+ - Benguela
6
+ - Bie
7
+ - Kuito
8
+ - Cabinda
9
+ - Cabinda
10
+ - Cuando-Cubango
11
+ - Menongue
12
+ - Cunene
13
+ - Ondjiva
14
+ - Cuanza Norte
15
+ - N'dalatando
16
+ - Cuanza Sul
17
+ - Sumbe
18
+ - Huambo province
19
+ - Huambo
20
+ - Huila province
21
+ - Lubango
22
+ - Lunda Norte
23
+ - Lucapa
24
+ - Lunda Sul
25
+ - Saurimo
26
+ - Luanda
27
+ - Luanda
28
+ - Malange
29
+ - Malanje
30
+ - Moxico
31
+ - Luena
32
+ - Namibe
33
+ - Namibe
34
+ - Uige
35
+ - !binary |
36
+ VcOtZ2U=
37
+
38
+ - Zaire
39
+ - M'banza Congo
@@ -0,0 +1,2 @@
1
+ --- []
2
+
@@ -0,0 +1,49 @@
1
+ ---
2
+ - Salta
3
+ - Salta
4
+ - Buenos Aires Province
5
+ - La Plata
6
+ - Distrito Federal
7
+ - Buenos Aires
8
+ - San Luis
9
+ - San Luis
10
+ - Entre Rios
11
+ - "Paran\xC3\xA1"
12
+ - La Rioja
13
+ - La Rioja
14
+ - Santiago del Estero
15
+ - Santiago del Estero
16
+ - Chaco
17
+ - Resistencia
18
+ - San Juan
19
+ - San Juan
20
+ - Catamarca
21
+ - San Fernando del Valle de Catamarca
22
+ - La Pampa
23
+ - Santa Rosa
24
+ - Mendoza
25
+ - Mendoza
26
+ - Misiones
27
+ - Posadas
28
+ - Formosa
29
+ - Formosa
30
+ - Neuquen
31
+ - "Neuqu\xC3\xA9n"
32
+ - Rio Negro
33
+ - Viedma
34
+ - Santa Fe
35
+ - Santa Fe
36
+ - Tucuman
37
+ - "San Miguel de Tucum\xC3\xA1n"
38
+ - Chubut
39
+ - Rawson
40
+ - Tierra del Fuego
41
+ - Ushuaia
42
+ - Corrientes
43
+ - Corrientes
44
+ - Cordoba
45
+ - "C\xC3\xB3rdoba"
46
+ - Jujuy
47
+ - San Salvador de Jujuy
48
+ - Santa Cruz
49
+ - "R\xC3\xADo Gallegos"
@@ -0,0 +1,2 @@
1
+ --- []
2
+
@@ -0,0 +1,19 @@
1
+ ---
2
+ - Burgenland
3
+ - Eisenstadt
4
+ - Karnten
5
+ - Klagenfurt
6
+ - Niederosterreich
7
+ - "Sankt P\xC3\xB6lten"
8
+ - Oberosterreich
9
+ - Linz
10
+ - Salzburg
11
+ - Salzburg
12
+ - Steiermark
13
+ - Graz
14
+ - Tirol
15
+ - Innsbruck
16
+ - Vorarlberg
17
+ - Bregenz
18
+ - Wien
19
+ - Wien
@@ -0,0 +1,17 @@
1
+ ---
2
+ - Australian Capital Territory
3
+ - Canberra
4
+ - New South Wales
5
+ - Sydney
6
+ - Northern Territory
7
+ - Darwin
8
+ - Queensland
9
+ - Brisbane
10
+ - South Australia
11
+ - Adelaide
12
+ - Tasmania
13
+ - Hobart
14
+ - Victoria
15
+ - Melbourne
16
+ - Western Australia
17
+ - Perth
@@ -0,0 +1,2 @@
1
+ --- []
2
+
@@ -0,0 +1,2 @@
1
+ --- []
2
+
@@ -0,0 +1,71 @@
1
+ ---
2
+ - Ali Bayramli
3
+ - Abseron
4
+ - Agstafa
5
+ - AgcabAdi
6
+ - Agdam
7
+ - Agdas
8
+ - Agsu
9
+ - Astara
10
+ - Baki
11
+ - Baku
12
+ - BalakAn
13
+ - BArdA
14
+ - Beylaqan
15
+ - Bilasuvar
16
+ - Cabrayil
17
+ - Daskasan
18
+ - Davaci
19
+ - Fuzuli
20
+ - Ganca
21
+ - Gadabay
22
+ - Goranboy
23
+ - Goranboy
24
+ - Goycay
25
+ - Haciqabul
26
+ - Imisli
27
+ - Ismayilli
28
+ - Kalbacar
29
+ - Kurdamir
30
+ - Lacin
31
+ - Lerik
32
+ - Masalli
33
+ - Mingacevir
34
+ - Naftalan
35
+ - Neftcala
36
+ - Naxcivan
37
+ - Oguz
38
+ - Qabala
39
+ - Qax
40
+ - Qazax
41
+ - Qazax
42
+ - Quba
43
+ - Qubadli
44
+ - Qobustan
45
+ - Qusar
46
+ - Sabirabad
47
+ - Salyan
48
+ - Saatli
49
+ - Siyazan
50
+ - Samkir
51
+ - Sumqayit
52
+ - Samaxi
53
+ - Samux
54
+ - Tartar
55
+ - Tovuz
56
+ - Tovuz
57
+ - Ucar
58
+ - Ucar
59
+ - Xankandi
60
+ - Xacmaz
61
+ - Xanlar
62
+ - Xanlar
63
+ - Xocali
64
+ - Xizi
65
+ - Xocavand
66
+ - Yardimli
67
+ - Yevlax
68
+ - Zangilan
69
+ - Zaqatala
70
+ - Zaqatala
71
+ - Zardab
@@ -0,0 +1,2 @@
1
+ --- []
2
+