countries 3.0.1 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (344) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +43 -1
  3. data/README.markdown +1 -0
  4. data/countries.gemspec +1 -1
  5. data/lib/countries/cache/countries.json +1 -1
  6. data/lib/countries/cache/locales/ab.json +1 -1
  7. data/lib/countries/cache/locales/af.json +1 -1
  8. data/lib/countries/cache/locales/ak.json +1 -1
  9. data/lib/countries/cache/locales/am.json +1 -1
  10. data/lib/countries/cache/locales/an.json +1 -1
  11. data/lib/countries/cache/locales/ar.json +1 -1
  12. data/lib/countries/cache/locales/as.json +1 -1
  13. data/lib/countries/cache/locales/ay.json +1 -1
  14. data/lib/countries/cache/locales/az.json +1 -1
  15. data/lib/countries/cache/locales/ba.json +1 -1
  16. data/lib/countries/cache/locales/be.json +1 -1
  17. data/lib/countries/cache/locales/bg.json +1 -1
  18. data/lib/countries/cache/locales/bi.json +1 -1
  19. data/lib/countries/cache/locales/bn-in.json +1 -1
  20. data/lib/countries/cache/locales/bn.json +1 -1
  21. data/lib/countries/cache/locales/br.json +1 -1
  22. data/lib/countries/cache/locales/bs.json +1 -1
  23. data/lib/countries/cache/locales/ca.json +1 -1
  24. data/lib/countries/cache/locales/ce.json +1 -1
  25. data/lib/countries/cache/locales/ch.json +1 -1
  26. data/lib/countries/cache/locales/cs.json +1 -1
  27. data/lib/countries/cache/locales/cv.json +1 -1
  28. data/lib/countries/cache/locales/cy.json +1 -1
  29. data/lib/countries/cache/locales/da.json +1 -1
  30. data/lib/countries/cache/locales/de.json +1 -1
  31. data/lib/countries/cache/locales/dv.json +1 -1
  32. data/lib/countries/cache/locales/dz.json +1 -1
  33. data/lib/countries/cache/locales/ee.json +1 -1
  34. data/lib/countries/cache/locales/el.json +1 -1
  35. data/lib/countries/cache/locales/en.json +1 -1
  36. data/lib/countries/cache/locales/eo.json +1 -1
  37. data/lib/countries/cache/locales/es.json +1 -1
  38. data/lib/countries/cache/locales/et.json +1 -1
  39. data/lib/countries/cache/locales/eu.json +1 -1
  40. data/lib/countries/cache/locales/fa.json +1 -1
  41. data/lib/countries/cache/locales/ff.json +1 -1
  42. data/lib/countries/cache/locales/fi.json +1 -1
  43. data/lib/countries/cache/locales/fo.json +1 -1
  44. data/lib/countries/cache/locales/fr.json +1 -1
  45. data/lib/countries/cache/locales/fy.json +1 -1
  46. data/lib/countries/cache/locales/ga.json +1 -1
  47. data/lib/countries/cache/locales/gl.json +1 -1
  48. data/lib/countries/cache/locales/gn.json +1 -1
  49. data/lib/countries/cache/locales/gu.json +1 -1
  50. data/lib/countries/cache/locales/gv.json +1 -1
  51. data/lib/countries/cache/locales/ha.json +1 -1
  52. data/lib/countries/cache/locales/he.json +1 -1
  53. data/lib/countries/cache/locales/hi.json +1 -1
  54. data/lib/countries/cache/locales/hr.json +1 -1
  55. data/lib/countries/cache/locales/ht.json +1 -1
  56. data/lib/countries/cache/locales/hu.json +1 -1
  57. data/lib/countries/cache/locales/hy.json +1 -1
  58. data/lib/countries/cache/locales/ia.json +1 -1
  59. data/lib/countries/cache/locales/id.json +1 -1
  60. data/lib/countries/cache/locales/io.json +1 -1
  61. data/lib/countries/cache/locales/is.json +1 -1
  62. data/lib/countries/cache/locales/it.json +1 -1
  63. data/lib/countries/cache/locales/iu.json +1 -1
  64. data/lib/countries/cache/locales/ja.json +1 -1
  65. data/lib/countries/cache/locales/ka.json +1 -1
  66. data/lib/countries/cache/locales/ki.json +1 -1
  67. data/lib/countries/cache/locales/kk.json +1 -1
  68. data/lib/countries/cache/locales/kl.json +1 -1
  69. data/lib/countries/cache/locales/km.json +1 -1
  70. data/lib/countries/cache/locales/kn.json +1 -1
  71. data/lib/countries/cache/locales/ko.json +1 -1
  72. data/lib/countries/cache/locales/ku.json +1 -1
  73. data/lib/countries/cache/locales/kv.json +1 -1
  74. data/lib/countries/cache/locales/kw.json +1 -1
  75. data/lib/countries/cache/locales/ky.json +1 -1
  76. data/lib/countries/cache/locales/lo.json +1 -1
  77. data/lib/countries/cache/locales/lt.json +1 -1
  78. data/lib/countries/cache/locales/lv.json +1 -1
  79. data/lib/countries/cache/locales/mi.json +1 -1
  80. data/lib/countries/cache/locales/mk.json +1 -1
  81. data/lib/countries/cache/locales/ml.json +1 -1
  82. data/lib/countries/cache/locales/mn.json +1 -1
  83. data/lib/countries/cache/locales/mr.json +1 -1
  84. data/lib/countries/cache/locales/ms.json +1 -1
  85. data/lib/countries/cache/locales/mt.json +1 -1
  86. data/lib/countries/cache/locales/my.json +1 -1
  87. data/lib/countries/cache/locales/na.json +1 -1
  88. data/lib/countries/cache/locales/nb.json +1 -1
  89. data/lib/countries/cache/locales/ne.json +1 -1
  90. data/lib/countries/cache/locales/nl.json +1 -1
  91. data/lib/countries/cache/locales/nn.json +1 -1
  92. data/lib/countries/cache/locales/nv.json +1 -1
  93. data/lib/countries/cache/locales/oc.json +1 -1
  94. data/lib/countries/cache/locales/or.json +1 -1
  95. data/lib/countries/cache/locales/pa.json +1 -1
  96. data/lib/countries/cache/locales/pi.json +1 -1
  97. data/lib/countries/cache/locales/pl.json +1 -1
  98. data/lib/countries/cache/locales/ps.json +1 -1
  99. data/lib/countries/cache/locales/pt-br.json +1 -1
  100. data/lib/countries/cache/locales/pt.json +1 -1
  101. data/lib/countries/cache/locales/ro.json +1 -1
  102. data/lib/countries/cache/locales/ru.json +1 -1
  103. data/lib/countries/cache/locales/rw.json +1 -1
  104. data/lib/countries/cache/locales/sc.json +1 -1
  105. data/lib/countries/cache/locales/sd.json +1 -1
  106. data/lib/countries/cache/locales/si.json +1 -1
  107. data/lib/countries/cache/locales/sk.json +1 -1
  108. data/lib/countries/cache/locales/sl.json +1 -1
  109. data/lib/countries/cache/locales/so.json +1 -1
  110. data/lib/countries/cache/locales/sq.json +1 -1
  111. data/lib/countries/cache/locales/sr.json +1 -1
  112. data/lib/countries/cache/locales/sv.json +1 -1
  113. data/lib/countries/cache/locales/sw.json +1 -1
  114. data/lib/countries/cache/locales/ta.json +1 -1
  115. data/lib/countries/cache/locales/te.json +1 -1
  116. data/lib/countries/cache/locales/tg.json +1 -1
  117. data/lib/countries/cache/locales/th.json +1 -1
  118. data/lib/countries/cache/locales/ti.json +1 -1
  119. data/lib/countries/cache/locales/tk.json +1 -1
  120. data/lib/countries/cache/locales/tl.json +1 -1
  121. data/lib/countries/cache/locales/tr.json +1 -1
  122. data/lib/countries/cache/locales/tt.json +1 -1
  123. data/lib/countries/cache/locales/ug.json +1 -1
  124. data/lib/countries/cache/locales/uk.json +1 -1
  125. data/lib/countries/cache/locales/ur.json +1 -1
  126. data/lib/countries/cache/locales/uz.json +1 -1
  127. data/lib/countries/cache/locales/ve.json +1 -1
  128. data/lib/countries/cache/locales/vi.json +1 -1
  129. data/lib/countries/cache/locales/wa.json +1 -1
  130. data/lib/countries/cache/locales/wo.json +1 -1
  131. data/lib/countries/cache/locales/xh.json +1 -1
  132. data/lib/countries/cache/locales/yo.json +1 -1
  133. data/lib/countries/cache/locales/zh-cn.json +1 -1
  134. data/lib/countries/cache/locales/zh-hk.json +1 -1
  135. data/lib/countries/cache/locales/zh-tw.json +1 -1
  136. data/lib/countries/cache/locales/zh.json +1 -1
  137. data/lib/countries/cache/locales/zu.json +1 -1
  138. data/lib/countries/country.rb +1 -0
  139. data/lib/countries/data.rb +4 -1
  140. data/lib/countries/data/countries/AD.yaml +1 -0
  141. data/lib/countries/data/countries/AF.yaml +1 -0
  142. data/lib/countries/data/countries/AG.yaml +1 -1
  143. data/lib/countries/data/countries/AI.yaml +1 -0
  144. data/lib/countries/data/countries/AL.yaml +2 -1
  145. data/lib/countries/data/countries/AM.yaml +1 -0
  146. data/lib/countries/data/countries/AQ.yaml +1 -1
  147. data/lib/countries/data/countries/AR.yaml +1 -0
  148. data/lib/countries/data/countries/AS.yaml +1 -0
  149. data/lib/countries/data/countries/AT.yaml +1 -0
  150. data/lib/countries/data/countries/AU.yaml +1 -0
  151. data/lib/countries/data/countries/AX.yaml +1 -0
  152. data/lib/countries/data/countries/AZ.yaml +1 -0
  153. data/lib/countries/data/countries/BA.yaml +1 -0
  154. data/lib/countries/data/countries/BB.yaml +1 -0
  155. data/lib/countries/data/countries/BD.yaml +1 -0
  156. data/lib/countries/data/countries/BE.yaml +1 -0
  157. data/lib/countries/data/countries/BG.yaml +1 -0
  158. data/lib/countries/data/countries/BH.yaml +2 -1
  159. data/lib/countries/data/countries/BL.yaml +1 -0
  160. data/lib/countries/data/countries/BM.yaml +1 -0
  161. data/lib/countries/data/countries/BN.yaml +2 -1
  162. data/lib/countries/data/countries/BO.yaml +1 -1
  163. data/lib/countries/data/countries/BQ.yaml +1 -1
  164. data/lib/countries/data/countries/BR.yaml +3 -2
  165. data/lib/countries/data/countries/BT.yaml +1 -0
  166. data/lib/countries/data/countries/BV.yaml +1 -1
  167. data/lib/countries/data/countries/BY.yaml +1 -0
  168. data/lib/countries/data/countries/BZ.yaml +1 -1
  169. data/lib/countries/data/countries/CA.yaml +1 -0
  170. data/lib/countries/data/countries/CC.yaml +1 -0
  171. data/lib/countries/data/countries/CH.yaml +1 -0
  172. data/lib/countries/data/countries/CL.yaml +6 -0
  173. data/lib/countries/data/countries/CN.yaml +1 -0
  174. data/lib/countries/data/countries/CO.yaml +1 -0
  175. data/lib/countries/data/countries/CR.yaml +1 -0
  176. data/lib/countries/data/countries/CU.yaml +1 -0
  177. data/lib/countries/data/countries/CV.yaml +1 -0
  178. data/lib/countries/data/countries/CW.yaml +1 -1
  179. data/lib/countries/data/countries/CX.yaml +1 -0
  180. data/lib/countries/data/countries/CY.yaml +1 -0
  181. data/lib/countries/data/countries/CZ.yaml +1 -0
  182. data/lib/countries/data/countries/DE.yaml +1 -0
  183. data/lib/countries/data/countries/DK.yaml +1 -0
  184. data/lib/countries/data/countries/DO.yaml +1 -0
  185. data/lib/countries/data/countries/DZ.yaml +1 -0
  186. data/lib/countries/data/countries/EC.yaml +1 -0
  187. data/lib/countries/data/countries/EE.yaml +1 -0
  188. data/lib/countries/data/countries/EG.yaml +1 -0
  189. data/lib/countries/data/countries/EH.yaml +1 -0
  190. data/lib/countries/data/countries/ES.yaml +1 -0
  191. data/lib/countries/data/countries/ET.yaml +1 -0
  192. data/lib/countries/data/countries/FI.yaml +1 -0
  193. data/lib/countries/data/countries/FK.yaml +1 -0
  194. data/lib/countries/data/countries/FM.yaml +1 -0
  195. data/lib/countries/data/countries/FO.yaml +1 -0
  196. data/lib/countries/data/countries/FR.yaml +1 -0
  197. data/lib/countries/data/countries/GA.yaml +1 -1
  198. data/lib/countries/data/countries/GB.yaml +4 -0
  199. data/lib/countries/data/countries/GE.yaml +1 -0
  200. data/lib/countries/data/countries/GF.yaml +1 -0
  201. data/lib/countries/data/countries/GG.yaml +1 -0
  202. data/lib/countries/data/countries/GI.yaml +1 -0
  203. data/lib/countries/data/countries/GL.yaml +2 -1
  204. data/lib/countries/data/countries/GN.yaml +2 -1
  205. data/lib/countries/data/countries/GP.yaml +1 -0
  206. data/lib/countries/data/countries/GR.yaml +1 -0
  207. data/lib/countries/data/countries/GS.yaml +1 -0
  208. data/lib/countries/data/countries/GT.yaml +1 -0
  209. data/lib/countries/data/countries/GU.yaml +1 -0
  210. data/lib/countries/data/countries/GW.yaml +1 -0
  211. data/lib/countries/data/countries/HM.yaml +2 -1
  212. data/lib/countries/data/countries/HN.yaml +1 -0
  213. data/lib/countries/data/countries/HR.yaml +1 -0
  214. data/lib/countries/data/countries/HT.yaml +1 -0
  215. data/lib/countries/data/countries/HU.yaml +1 -0
  216. data/lib/countries/data/countries/ID.yaml +1 -0
  217. data/lib/countries/data/countries/IE.yaml +2 -1
  218. data/lib/countries/data/countries/IL.yaml +1 -0
  219. data/lib/countries/data/countries/IM.yaml +1 -0
  220. data/lib/countries/data/countries/IN.yaml +1 -0
  221. data/lib/countries/data/countries/IO.yaml +2 -1
  222. data/lib/countries/data/countries/IQ.yaml +1 -0
  223. data/lib/countries/data/countries/IR.yaml +1 -0
  224. data/lib/countries/data/countries/IS.yaml +2 -1
  225. data/lib/countries/data/countries/IT.yaml +1 -0
  226. data/lib/countries/data/countries/JE.yaml +1 -0
  227. data/lib/countries/data/countries/JO.yaml +1 -0
  228. data/lib/countries/data/countries/JP.yaml +1 -0
  229. data/lib/countries/data/countries/KE.yaml +2 -1
  230. data/lib/countries/data/countries/KG.yaml +1 -0
  231. data/lib/countries/data/countries/KH.yaml +1 -0
  232. data/lib/countries/data/countries/KR.yaml +1 -0
  233. data/lib/countries/data/countries/KW.yaml +1 -0
  234. data/lib/countries/data/countries/KY.yaml +1 -0
  235. data/lib/countries/data/countries/KZ.yaml +1 -0
  236. data/lib/countries/data/countries/LA.yaml +1 -0
  237. data/lib/countries/data/countries/LB.yaml +1 -0
  238. data/lib/countries/data/countries/LI.yaml +1 -0
  239. data/lib/countries/data/countries/LK.yaml +1 -0
  240. data/lib/countries/data/countries/LR.yaml +1 -0
  241. data/lib/countries/data/countries/LS.yaml +1 -0
  242. data/lib/countries/data/countries/LT.yaml +1 -0
  243. data/lib/countries/data/countries/LU.yaml +1 -0
  244. data/lib/countries/data/countries/LV.yaml +7 -0
  245. data/lib/countries/data/countries/LY.yaml +1 -1
  246. data/lib/countries/data/countries/MA.yaml +1 -0
  247. data/lib/countries/data/countries/MC.yaml +1 -0
  248. data/lib/countries/data/countries/MD.yaml +1 -0
  249. data/lib/countries/data/countries/ME.yaml +1 -0
  250. data/lib/countries/data/countries/MF.yaml +1 -0
  251. data/lib/countries/data/countries/MG.yaml +1 -0
  252. data/lib/countries/data/countries/MH.yaml +1 -0
  253. data/lib/countries/data/countries/MK.yaml +1 -0
  254. data/lib/countries/data/countries/MM.yaml +1 -0
  255. data/lib/countries/data/countries/MN.yaml +1 -0
  256. data/lib/countries/data/countries/MP.yaml +1 -0
  257. data/lib/countries/data/countries/MQ.yaml +1 -0
  258. data/lib/countries/data/countries/MT.yaml +1 -0
  259. data/lib/countries/data/countries/MU.yaml +2 -1
  260. data/lib/countries/data/countries/MV.yaml +1 -0
  261. data/lib/countries/data/countries/MX.yaml +3 -2
  262. data/lib/countries/data/countries/MY.yaml +1 -0
  263. data/lib/countries/data/countries/MZ.yaml +1 -0
  264. data/lib/countries/data/countries/NA.yaml +1 -0
  265. data/lib/countries/data/countries/NC.yaml +1 -0
  266. data/lib/countries/data/countries/NE.yaml +1 -0
  267. data/lib/countries/data/countries/NF.yaml +1 -0
  268. data/lib/countries/data/countries/NG.yaml +2 -1
  269. data/lib/countries/data/countries/NI.yaml +1 -0
  270. data/lib/countries/data/countries/NL.yaml +1 -0
  271. data/lib/countries/data/countries/NO.yaml +3 -2
  272. data/lib/countries/data/countries/NP.yaml +1 -0
  273. data/lib/countries/data/countries/NZ.yaml +3 -2
  274. data/lib/countries/data/countries/OM.yaml +1 -0
  275. data/lib/countries/data/countries/PE.yaml +1 -0
  276. data/lib/countries/data/countries/PF.yaml +1 -0
  277. data/lib/countries/data/countries/PG.yaml +1 -0
  278. data/lib/countries/data/countries/PH.yaml +3 -2
  279. data/lib/countries/data/countries/PK.yaml +1 -0
  280. data/lib/countries/data/countries/PL.yaml +1 -0
  281. data/lib/countries/data/countries/PM.yaml +1 -0
  282. data/lib/countries/data/countries/PN.yaml +1 -0
  283. data/lib/countries/data/countries/PR.yaml +1 -0
  284. data/lib/countries/data/countries/PS.yaml +1 -1
  285. data/lib/countries/data/countries/PT.yaml +1 -0
  286. data/lib/countries/data/countries/PW.yaml +1 -0
  287. data/lib/countries/data/countries/PY.yaml +1 -0
  288. data/lib/countries/data/countries/RE.yaml +1 -0
  289. data/lib/countries/data/countries/RO.yaml +1 -0
  290. data/lib/countries/data/countries/RS.yaml +1 -0
  291. data/lib/countries/data/countries/RU.yaml +1 -0
  292. data/lib/countries/data/countries/SA.yaml +2 -1
  293. data/lib/countries/data/countries/SB.yaml +1 -1
  294. data/lib/countries/data/countries/SD.yaml +1 -0
  295. data/lib/countries/data/countries/SE.yaml +1 -0
  296. data/lib/countries/data/countries/SG.yaml +1 -0
  297. data/lib/countries/data/countries/SH.yaml +1 -0
  298. data/lib/countries/data/countries/SI.yaml +1 -0
  299. data/lib/countries/data/countries/SJ.yaml +1 -0
  300. data/lib/countries/data/countries/SK.yaml +1 -0
  301. data/lib/countries/data/countries/SM.yaml +1 -0
  302. data/lib/countries/data/countries/SN.yaml +1 -0
  303. data/lib/countries/data/countries/SO.yaml +2 -1
  304. data/lib/countries/data/countries/SS.yaml +2 -2
  305. data/lib/countries/data/countries/SV.yaml +1 -0
  306. data/lib/countries/data/countries/SX.yaml +1 -1
  307. data/lib/countries/data/countries/SZ.yaml +1 -0
  308. data/lib/countries/data/countries/TC.yaml +1 -0
  309. data/lib/countries/data/countries/TD.yaml +1 -1
  310. data/lib/countries/data/countries/TG.yaml +1 -1
  311. data/lib/countries/data/countries/TH.yaml +3 -1
  312. data/lib/countries/data/countries/TJ.yaml +1 -0
  313. data/lib/countries/data/countries/TM.yaml +1 -0
  314. data/lib/countries/data/countries/TN.yaml +1 -0
  315. data/lib/countries/data/countries/TR.yaml +1 -0
  316. data/lib/countries/data/countries/TV.yaml +1 -1
  317. data/lib/countries/data/countries/TW.yaml +1 -0
  318. data/lib/countries/data/countries/TZ.yaml +2 -1
  319. data/lib/countries/data/countries/UA.yaml +2 -1
  320. data/lib/countries/data/countries/UM.yaml +1 -0
  321. data/lib/countries/data/countries/US.yaml +1 -0
  322. data/lib/countries/data/countries/UY.yaml +1 -0
  323. data/lib/countries/data/countries/UZ.yaml +1 -0
  324. data/lib/countries/data/countries/VA.yaml +1 -0
  325. data/lib/countries/data/countries/VC.yaml +1 -0
  326. data/lib/countries/data/countries/VE.yaml +1 -0
  327. data/lib/countries/data/countries/VG.yaml +2 -1
  328. data/lib/countries/data/countries/VI.yaml +1 -0
  329. data/lib/countries/data/countries/VN.yaml +7 -0
  330. data/lib/countries/data/countries/WF.yaml +1 -0
  331. data/lib/countries/data/countries/WS.yaml +1 -1
  332. data/lib/countries/data/countries/YT.yaml +1 -0
  333. data/lib/countries/data/countries/ZA.yaml +3 -2
  334. data/lib/countries/data/countries/ZM.yaml +1 -0
  335. data/lib/countries/data/subdivisions/CN.yaml +34 -34
  336. data/lib/countries/data/subdivisions/ES.yaml +192 -144
  337. data/lib/countries/data/subdivisions/GB.yaml +4 -1
  338. data/lib/countries/data/translation_corrections.yaml +4 -0
  339. data/lib/countries/structure.rb +1 -0
  340. data/lib/countries/tasks/postal_codes.rake +48 -0
  341. data/lib/countries/version.rb +1 -1
  342. data/spec/country_spec.rb +12 -2
  343. metadata +9 -9
  344. data/lib/countries/data/subdivisions/PR.yaml +0 -1015
@@ -2800,7 +2800,10 @@ ERW:
2800
2800
  max_longitude: -4.2187585
2801
2801
  name: East Renfrewshire
2802
2802
  ERY:
2803
- unofficial_names: East Riding of Yorkshire
2803
+ unofficial_names:
2804
+ - East Riding of Yorkshire
2805
+ - East Yorkshire
2806
+ - East Riding
2804
2807
  translations:
2805
2808
  en: East Riding of Yorkshire
2806
2809
  af: Oos-Yorkshire
@@ -21,6 +21,8 @@ ar:
21
21
  SY: "سوريا"
22
22
  BQ: "بونير، سينت أوستاتيوس وسابا"
23
23
  CW: "كوراساو"
24
+ nn:
25
+ PT: Portugal
24
26
  zh:
25
27
  KH: '柬埔寨'
26
28
  zh_cn:
@@ -32,3 +34,5 @@ he:
32
34
  VI: "איי הבתולה (ארה)"
33
35
  sv:
34
36
  GB: "Storbritannien"
37
+ pt:
38
+ CZ: 'República Checa'
@@ -42,6 +42,7 @@ module ISO3166
42
42
  'languages_spoken' => [],
43
43
  'translations' => {},
44
44
  'postal_code' => nil,
45
+ 'postal_code_format' => nil,
45
46
  'region' => nil,
46
47
  'unofficial_names' => [],
47
48
  'start_of_week' => 'monday',
@@ -0,0 +1,48 @@
1
+ namespace :postal_codes do
2
+ desc 'Retrieve and update postal codes and their format'
3
+ task :update do
4
+ require 'json'
5
+ require 'open-uri'
6
+ require 'yaml'
7
+
8
+ country_files = Dir['lib/countries/data/countries/*.yaml'].sort
9
+
10
+ country_files.each do |country_file|
11
+ yaml = YAML.load_file(country_file)
12
+ country_code = File.basename(country_file, File.extname(country_file))
13
+ print "\rUpdating #{country_code}"
14
+
15
+ data = yaml[country_code].to_a
16
+ postal_code_index = data.find_index { |d| d[0] == 'postal_code' }
17
+ postal_code_format_index = data.find_index { |d| d[0] == 'postal_code_format' }
18
+
19
+ response = URI.open("https://chromium-i18n.appspot.com/ssl-address/data/#{country_code}").read
20
+ json = JSON.parse(response) rescue {}
21
+ puts ' - Returned empty data. Skipping ' and next if json.empty?
22
+
23
+ postal_code = ['postal_code', !!json['zip']]
24
+ postal_code_format = ['postal_code_format', json['zip']]
25
+
26
+ if postal_code_index
27
+ data[postal_code_index] = postal_code
28
+ else
29
+ postal_code_index = data.find_index { |d| d[0] == 'nationality' } + 1 || data.size
30
+ data.insert(postal_code_index, postal_code)
31
+ end
32
+
33
+ if json['zip']
34
+ if postal_code_format_index
35
+ data[postal_code_format_index] = postal_code_format
36
+ else
37
+ data.insert(postal_code_index + 1, postal_code_format)
38
+ end
39
+ elsif postal_code_format_index
40
+ data.delete_at(postal_code_format_index)
41
+ end
42
+
43
+ yaml[country_code] = data.to_h
44
+
45
+ File.open(country_file, 'w') { |file| file.write(yaml.to_yaml) }
46
+ end
47
+ end
48
+ end
@@ -1,3 +1,3 @@
1
1
  module Countries
2
- VERSION = '3.0.1'.freeze
2
+ VERSION = '3.1.0'.freeze
3
3
  end
data/spec/country_spec.rb CHANGED
@@ -85,8 +85,18 @@ describe ISO3166::Country do
85
85
  end
86
86
 
87
87
  it 'knows when a country does not require postal codes' do
88
- ireland = ISO3166::Country.search('IE')
89
- expect(ireland.postal_code).to eq(false)
88
+ antarctica = ISO3166::Country.search('AQ')
89
+ expect(antarctica.postal_code).to eq(false)
90
+ end
91
+
92
+ it 'knows about the country postal code format' do
93
+ expect(country.postal_code_format).to_not be_nil
94
+
95
+ regex = Regexp.new(country.postal_code_format)
96
+ expect(regex).to match("12345-6789")
97
+
98
+ antarctica = ISO3166::Country.search('AQ')
99
+ expect(antarctica.postal_code_format).to be_nil
90
100
  end
91
101
 
92
102
  it 'should return region' do
metadata CHANGED
@@ -1,16 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: countries
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.1
4
+ version: 3.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josh Robinson
8
8
  - Joe Corcoran
9
9
  - Russell Osborne
10
- autorequire:
10
+ autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2020-02-11 00:00:00.000000000 Z
13
+ date: 2021-03-24 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: i18n_data
@@ -18,14 +18,14 @@ dependencies:
18
18
  requirements:
19
19
  - - "~>"
20
20
  - !ruby/object:Gem::Version
21
- version: 0.10.0
21
+ version: 0.11.0
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  requirements:
26
26
  - - "~>"
27
27
  - !ruby/object:Gem::Version
28
- version: 0.10.0
28
+ version: 0.11.0
29
29
  - !ruby/object:Gem::Dependency
30
30
  name: unicode_utils
31
31
  requirement: !ruby/object:Gem::Requirement
@@ -667,7 +667,6 @@ files:
667
667
  - lib/countries/data/subdivisions/PK.yaml
668
668
  - lib/countries/data/subdivisions/PL.yaml
669
669
  - lib/countries/data/subdivisions/PM.yaml
670
- - lib/countries/data/subdivisions/PR.yaml
671
670
  - lib/countries/data/subdivisions/PS.yaml
672
671
  - lib/countries/data/subdivisions/PT.yaml
673
672
  - lib/countries/data/subdivisions/PW.yaml
@@ -745,6 +744,7 @@ files:
745
744
  - lib/countries/structure.rb
746
745
  - lib/countries/subdivision.rb
747
746
  - lib/countries/tasks/geocoding.rake
747
+ - lib/countries/tasks/postal_codes.rake
748
748
  - lib/countries/timezones.rb
749
749
  - lib/countries/translations.rb
750
750
  - lib/countries/version.rb
@@ -761,7 +761,7 @@ homepage: http://github.com/hexorx/countries
761
761
  licenses:
762
762
  - MIT
763
763
  metadata: {}
764
- post_install_message:
764
+ post_install_message:
765
765
  rdoc_options: []
766
766
  require_paths:
767
767
  - lib
@@ -776,8 +776,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
776
776
  - !ruby/object:Gem::Version
777
777
  version: '0'
778
778
  requirements: []
779
- rubygems_version: 3.0.3
780
- signing_key:
779
+ rubygems_version: 3.1.4
780
+ signing_key:
781
781
  specification_version: 4
782
782
  summary: Gives you a country object full of all sorts of useful information.
783
783
  test_files:
@@ -1,1015 +0,0 @@
1
- ---
2
- '1':
3
- unofficial_names: Adjuntas
4
- translations:
5
- en: Adjuntas
6
- geo:
7
- latitude: 18.16274
8
- longitude: -66.72212
9
- min_latitude:
10
- min_longitude:
11
- max_latitude:
12
- max_longitude:
13
- name: Adjuntas
14
- comments:
15
- '2':
16
- unofficial_names: Aguada
17
- translations:
18
- en: Aguada
19
- geo:
20
- latitude: 18.3605
21
- longitude: -67.17463
22
- min_latitude:
23
- min_longitude:
24
- max_latitude:
25
- max_longitude:
26
- name: Aguada
27
- comments:
28
- '3':
29
- unofficial_names: Aguadilla
30
- translations:
31
- en: Aguadilla
32
- geo:
33
- latitude: 18.42745
34
- longitude: -67.15407
35
- min_latitude:
36
- min_longitude:
37
- max_latitude:
38
- max_longitude:
39
- name: Aguadilla
40
- comments:
41
- '4':
42
- unofficial_names: Aguas Buenas
43
- translations:
44
- en: Aguas Buenas
45
- geo:
46
- latitude: 18.2569
47
- longitude: -66.10294
48
- min_latitude:
49
- min_longitude:
50
- max_latitude:
51
- max_longitude:
52
- name: Aguas Buenas
53
- comments:
54
- '5':
55
- unofficial_names: Aibonito
56
- translations:
57
- en: Aibonito
58
- geo:
59
- latitude: 18.13996
60
- longitude: -66.266
61
- min_latitude:
62
- min_longitude:
63
- max_latitude:
64
- max_longitude:
65
- name: Aibonito
66
- comments:
67
- '6':
68
- unofficial_names: Anasco
69
- translations:
70
- en: Anasco
71
- geo:
72
- latitude: 18.28134
73
- longitude: -67.1274
74
- min_latitude:
75
- min_longitude:
76
- max_latitude:
77
- max_longitude:
78
- name: Anasco
79
- comments:
80
- '7':
81
- unofficial_names: Arecibo
82
- translations:
83
- en: Arecibo
84
- geo:
85
- latitude: 18.40411
86
- longitude: -66.67462
87
- min_latitude:
88
- min_longitude:
89
- max_latitude:
90
- max_longitude:
91
- name: Arecibo
92
- comments:
93
- '8':
94
- unofficial_names: Arroyo
95
- translations:
96
- en: Arroyo
97
- geo:
98
- latitude: 18.0008
99
- longitude: -66.05794
100
- min_latitude:
101
- min_longitude:
102
- max_latitude:
103
- max_longitude:
104
- name: Arroyo
105
- comments:
106
- '9':
107
- unofficial_names: Barceloneta
108
- translations:
109
- en: Barceloneta
110
- geo:
111
- latitude: 18.45633
112
- longitude: -66.54128
113
- min_latitude:
114
- min_longitude:
115
- max_latitude:
116
- max_longitude:
117
- name: Barceloneta
118
- comments:
119
- '10':
120
- unofficial_names: Barranquitas
121
- translations:
122
- en: Barranquitas
123
- geo:
124
- latitude: 18.20357
125
- longitude: -66.31211
126
- min_latitude:
127
- min_longitude:
128
- max_latitude:
129
- max_longitude:
130
- name: Barranquitas
131
- comments:
132
- '11':
133
- unofficial_names: Bayamon
134
- translations:
135
- en: Bayamon
136
- geo:
137
- latitude: 18.35217
138
- longitude: -66.17044
139
- min_latitude:
140
- min_longitude:
141
- max_latitude:
142
- max_longitude:
143
- name: Bayamon
144
- comments:
145
- '12':
146
- unofficial_names: Cabo Rojo
147
- translations:
148
- en: Cabo Rojo
149
- geo:
150
- latitude: 18.05635
151
- longitude: -67.14685
152
- min_latitude:
153
- min_longitude:
154
- max_latitude:
155
- max_longitude:
156
- name: Cabo Rojo
157
- comments:
158
- '13':
159
- unofficial_names: Caguas
160
- translations:
161
- en: Caguas
162
- geo:
163
- latitude: 18.21329
164
- longitude: -66.04961
165
- min_latitude:
166
- min_longitude:
167
- max_latitude:
168
- max_longitude:
169
- name: Caguas
170
- comments:
171
- '14':
172
- unofficial_names: Camuy
173
- translations:
174
- en: Camuy
175
- geo:
176
- latitude: 18.42578
177
- longitude: -66.85934
178
- min_latitude:
179
- min_longitude:
180
- max_latitude:
181
- max_longitude:
182
- name: Camuy
183
- comments:
184
- '15':
185
- unofficial_names: Canovanas
186
- translations:
187
- en: Canovanas
188
- geo:
189
- latitude: 18.33828
190
- longitude: -65.88711
191
- min_latitude:
192
- min_longitude:
193
- max_latitude:
194
- max_longitude:
195
- name: Canovanas
196
- comments:
197
- '16':
198
- unofficial_names: Carolina
199
- translations:
200
- en: Carolina
201
- geo:
202
- latitude: 18.37578
203
- longitude: -65.95794
204
- min_latitude:
205
- min_longitude:
206
- max_latitude:
207
- max_longitude:
208
- name: Carolina
209
- comments:
210
- '17':
211
- unofficial_names: Catano
212
- translations:
213
- en: Catano
214
- geo:
215
- latitude: 18.4355
216
- longitude: -66.13711
217
- min_latitude:
218
- min_longitude:
219
- max_latitude:
220
- max_longitude:
221
- name: Catano
222
- comments:
223
- '18':
224
- unofficial_names: Cayey
225
- translations:
226
- en: Cayey
227
- geo:
228
- latitude: 18.10357
229
- longitude: -66.15378
230
- min_latitude:
231
- min_longitude:
232
- max_latitude:
233
- max_longitude:
234
- name: Cayey
235
- comments:
236
- '19':
237
- unofficial_names: Ceiba
238
- translations:
239
- en: Ceiba
240
- geo:
241
- latitude: 18.26051
242
- longitude: -65.67183
243
- min_latitude:
244
- min_longitude:
245
- max_latitude:
246
- max_longitude:
247
- name: Ceiba
248
- comments:
249
- '20':
250
- unofficial_names: Ciales
251
- translations:
252
- en: Ciales
253
- geo:
254
- latitude: 18.29162
255
- longitude: -66.51628
256
- min_latitude:
257
- min_longitude:
258
- max_latitude:
259
- max_longitude:
260
- name: Ciales
261
- comments:
262
- '21':
263
- unofficial_names: Cidra
264
- translations:
265
- en: Cidra
266
- geo:
267
- latitude: 18.17579
268
- longitude: -66.16211
269
- min_latitude:
270
- min_longitude:
271
- max_latitude:
272
- max_longitude:
273
- name: Cidra
274
- comments:
275
- '22':
276
- unofficial_names: Coamo
277
- translations:
278
- en: Coamo
279
- geo:
280
- latitude: 18.09802
281
- longitude: -66.36211
282
- min_latitude:
283
- min_longitude:
284
- max_latitude:
285
- max_longitude:
286
- name: Coamo
287
- comments:
288
- '23':
289
- unofficial_names: Comerio
290
- translations:
291
- en: Comerio
292
- geo:
293
- latitude: 18.22718
294
- longitude: -66.22183
295
- min_latitude:
296
- min_longitude:
297
- max_latitude:
298
- max_longitude:
299
- name: Comerio
300
- comments:
301
- '24':
302
- unofficial_names: Corozal
303
- translations:
304
- en: Corozal
305
- geo:
306
- latitude: 18.30912
307
- longitude: -66.326
308
- min_latitude:
309
- min_longitude:
310
- max_latitude:
311
- max_longitude:
312
- name: Corozal
313
- comments:
314
- '25':
315
- unofficial_names: Culebra
316
- translations:
317
- en: Culebra
318
- geo:
319
- latitude: 18.31884
320
- longitude: -65.2871
321
- min_latitude:
322
- min_longitude:
323
- max_latitude:
324
- max_longitude:
325
- name: Culebra
326
- comments:
327
- '26':
328
- unofficial_names: Dorado
329
- translations:
330
- en: Dorado
331
- geo:
332
- latitude: 18.43967
333
- longitude: -66.28295
334
- min_latitude:
335
- min_longitude:
336
- max_latitude:
337
- max_longitude:
338
- name: Dorado
339
- comments:
340
- '27':
341
- unofficial_names: Fajardo
342
- translations:
343
- en: Fajardo
344
- geo:
345
- latitude: 18.31051
346
- longitude: -65.676
347
- min_latitude:
348
- min_longitude:
349
- max_latitude:
350
- max_longitude:
351
- name: Fajardo
352
- comments:
353
- '28':
354
- unofficial_names: Florida
355
- translations:
356
- en: Florida
357
- geo:
358
- latitude: 18.36051
359
- longitude: -66.56212
360
- min_latitude:
361
- min_longitude:
362
- max_latitude:
363
- max_longitude:
364
- name: Florida
365
- comments:
366
- '29':
367
- unofficial_names: Guanica
368
- translations:
369
- en: Guanica
370
- geo:
371
- latitude: 17.9883
372
- longitude: -66.91212
373
- min_latitude:
374
- min_longitude:
375
- max_latitude:
376
- max_longitude:
377
- name: Guanica
378
- comments:
379
- '30':
380
- unofficial_names: Guayama
381
- translations:
382
- en: Guayama
383
- geo:
384
- latitude: 18.01663
385
- longitude: -66.13072
386
- min_latitude:
387
- min_longitude:
388
- max_latitude:
389
- max_longitude:
390
- name: Guayama
391
- comments:
392
- '31':
393
- unofficial_names: Guayanilla
394
- translations:
395
- en: Guayanilla
396
- geo:
397
- latitude: 18.05413
398
- longitude: -66.7899
399
- min_latitude:
400
- min_longitude:
401
- max_latitude:
402
- max_longitude:
403
- name: Guayanilla
404
- comments:
405
- '32':
406
- unofficial_names: Guaynabo
407
- translations:
408
- en: Guaynabo
409
- geo:
410
- latitude: 18.34106
411
- longitude: -66.11628
412
- min_latitude:
413
- min_longitude:
414
- max_latitude:
415
- max_longitude:
416
- name: Guaynabo
417
- comments:
418
- '33':
419
- unofficial_names: Gurabo
420
- translations:
421
- en: Gurabo
422
- geo:
423
- latitude: 18.27162
424
- longitude: -65.97183
425
- min_latitude:
426
- min_longitude:
427
- max_latitude:
428
- max_longitude:
429
- name: Gurabo
430
- comments:
431
- '34':
432
- unofficial_names: Hatillo
433
- translations:
434
- en: Hatillo
435
- geo:
436
- latitude: 18.40773
437
- longitude: -66.79323
438
- min_latitude:
439
- min_longitude:
440
- max_latitude:
441
- max_longitude:
442
- name: Hatillo
443
- comments:
444
- '35':
445
- unofficial_names: Hormigueros
446
- translations:
447
- en: Hormigueros
448
- geo:
449
- latitude: 18.14162
450
- longitude: -67.11629
451
- min_latitude:
452
- min_longitude:
453
- max_latitude:
454
- max_longitude:
455
- name: Hormigueros
456
- comments:
457
- '36':
458
- unofficial_names: Humacao
459
- translations:
460
- en: Humacao
461
- geo:
462
- latitude: 18.14802
463
- longitude: -65.81211
464
- min_latitude:
465
- min_longitude:
466
- max_latitude:
467
- max_longitude:
468
- name: Humacao
469
- comments:
470
- '37':
471
- unofficial_names: Isabela
472
- translations:
473
- en: Isabela
474
- geo:
475
- latitude: 18.50078
476
- longitude: -67.02435
477
- min_latitude:
478
- min_longitude:
479
- max_latitude:
480
- max_longitude:
481
- name: Isabela
482
- comments:
483
- '38':
484
- unofficial_names: Jayuya
485
- translations:
486
- en: Jayuya
487
- geo:
488
- latitude: 18.21857
489
- longitude: -66.59156
490
- min_latitude:
491
- min_longitude:
492
- max_latitude:
493
- max_longitude:
494
- name: Jayuya
495
- comments:
496
- '39':
497
- unofficial_names: Juana Diaz
498
- translations:
499
- en: Juana Diaz
500
- geo:
501
- latitude: 18.04802
502
- longitude: -66.49267
503
- min_latitude:
504
- min_longitude:
505
- max_latitude:
506
- max_longitude:
507
- name: Juana Diaz
508
- comments:
509
- '40':
510
- unofficial_names: Juncos
511
- translations:
512
- en: Juncos
513
- geo:
514
- latitude: 18.22746
515
- longitude: -65.921
516
- min_latitude:
517
- min_longitude:
518
- max_latitude:
519
- max_longitude:
520
- name: Juncos
521
- comments:
522
- '41':
523
- unofficial_names: Lajas
524
- translations:
525
- en: Lajas
526
- geo:
527
- latitude: 18.0133
528
- longitude: -67.0399
529
- min_latitude:
530
- min_longitude:
531
- max_latitude:
532
- max_longitude:
533
- name: Lajas
534
- comments:
535
- '42':
536
- unofficial_names: Lares
537
- translations:
538
- en: Lares
539
- geo:
540
- latitude: 18.27023
541
- longitude: -66.86907
542
- min_latitude:
543
- min_longitude:
544
- max_latitude:
545
- max_longitude:
546
- name: Lares
547
- comments:
548
- '43':
549
- unofficial_names: Las Marias
550
- translations:
551
- en: Las Marias
552
- geo:
553
- latitude: 18.25087
554
- longitude: -66.9924
555
- min_latitude:
556
- min_longitude:
557
- max_latitude:
558
- max_longitude:
559
- name: Las Marias
560
- comments:
561
- '44':
562
- unofficial_names: Las Piedras
563
- translations:
564
- en: Las Piedras
565
- geo:
566
- latitude: 18.18829
567
- longitude: -65.87044
568
- min_latitude:
569
- min_longitude:
570
- max_latitude:
571
- max_longitude:
572
- name: Las Piedras
573
- comments:
574
- '45':
575
- unofficial_names: Loiza
576
- translations:
577
- en: Loiza
578
- geo:
579
- latitude: 18.43411
580
- longitude: -65.89266
581
- min_latitude:
582
- min_longitude:
583
- max_latitude:
584
- max_longitude:
585
- name: Loiza
586
- comments:
587
- '46':
588
- unofficial_names: Luquillo
589
- translations:
590
- en: Luquillo
591
- geo:
592
- latitude: 18.33967
593
- longitude: -65.72461
594
- min_latitude:
595
- min_longitude:
596
- max_latitude:
597
- max_longitude:
598
- name: Luquillo
599
- comments:
600
- '47':
601
- unofficial_names: Manati
602
- translations:
603
- en: Manati
604
- geo:
605
- latitude: 18.41884
606
- longitude: -66.49267
607
- min_latitude:
608
- min_longitude:
609
- max_latitude:
610
- max_longitude:
611
- name: Manati
612
- comments:
613
- '48':
614
- unofficial_names: Maricao
615
- translations:
616
- en: Maricao
617
- geo:
618
- latitude: 18.17301
619
- longitude: -66.94546
620
- min_latitude:
621
- min_longitude:
622
- max_latitude:
623
- max_longitude:
624
- name: Maricao
625
- comments:
626
- '49':
627
- unofficial_names: Maunabo
628
- translations:
629
- en: Maunabo
630
- geo:
631
- latitude: 18.01691
632
- longitude: -65.92738
633
- min_latitude:
634
- min_longitude:
635
- max_latitude:
636
- max_longitude:
637
- name: Maunabo
638
- comments:
639
- '50':
640
- unofficial_names: Mayaguez
641
- translations:
642
- en: Mayaguez
643
- geo:
644
- latitude: 18.20496
645
- longitude: -67.1024
646
- min_latitude:
647
- min_longitude:
648
- max_latitude:
649
- max_longitude:
650
- name: Mayaguez
651
- comments:
652
- '51':
653
- unofficial_names: Moca
654
- translations:
655
- en: Moca
656
- geo:
657
- latitude: 18.3855
658
- longitude: -67.08435
659
- min_latitude:
660
- min_longitude:
661
- max_latitude:
662
- max_longitude:
663
- name: Moca
664
- comments:
665
- '52':
666
- unofficial_names: Morovis
667
- translations:
668
- en: Morovis
669
- geo:
670
- latitude: 18.31884
671
- longitude: -66.41767
672
- min_latitude:
673
- min_longitude:
674
- max_latitude:
675
- max_longitude:
676
- name: Morovis
677
- comments:
678
- '53':
679
- unofficial_names: Naguabo
680
- translations:
681
- en: Naguabo
682
- geo:
683
- latitude: 18.23135
684
- longitude: -65.75988
685
- min_latitude:
686
- min_longitude:
687
- max_latitude:
688
- max_longitude:
689
- name: Naguabo
690
- comments:
691
- '54':
692
- unofficial_names: Naranjito
693
- translations:
694
- en: Naranjito
695
- geo:
696
- latitude: 18.28968
697
- longitude: -66.25517
698
- min_latitude:
699
- min_longitude:
700
- max_latitude:
701
- max_longitude:
702
- name: Naranjito
703
- comments:
704
- '55':
705
- unofficial_names: Orocovis
706
- translations:
707
- en: Orocovis
708
- geo:
709
- latitude: 18.21885
710
- longitude: -66.43712
711
- min_latitude:
712
- min_longitude:
713
- max_latitude:
714
- max_longitude:
715
- name: Orocovis
716
- comments:
717
- '56':
718
- unofficial_names: Patillas
719
- translations:
720
- en: Patillas
721
- geo:
722
- latitude: 18.04163
723
- longitude: -66.01766
724
- min_latitude:
725
- min_longitude:
726
- max_latitude:
727
- max_longitude:
728
- name: Patillas
729
- comments:
730
- '57':
731
- unofficial_names: Penuelas
732
- translations:
733
- en: Penuelas
734
- geo:
735
- latitude: 18.07024
736
- longitude: -66.71767
737
- min_latitude:
738
- min_longitude:
739
- max_latitude:
740
- max_longitude:
741
- name: Penuelas
742
- comments:
743
- '58':
744
- unofficial_names: Ponce
745
- translations:
746
- en: Ponce
747
- geo:
748
- latitude: 18.07302
749
- longitude: -66.61851
750
- min_latitude:
751
- min_longitude:
752
- max_latitude:
753
- max_longitude:
754
- name: Ponce
755
- comments:
756
- '59':
757
- unofficial_names: Quebradillas
758
- translations:
759
- en: Quebradillas
760
- geo:
761
- latitude: 18.43967
762
- longitude: -66.92462
763
- min_latitude:
764
- min_longitude:
765
- max_latitude:
766
- max_longitude:
767
- name: Quebradillas
768
- comments:
769
- '60':
770
- unofficial_names: Rincon
771
- translations:
772
- en: Rincon
773
- geo:
774
- latitude: 18.33967
775
- longitude: -67.23713
776
- min_latitude:
777
- min_longitude:
778
- max_latitude:
779
- max_longitude:
780
- name: Rincon
781
- comments:
782
- '61':
783
- unofficial_names: Rio Grande
784
- translations:
785
- en: Rio Grande
786
- geo:
787
- latitude: 18.34162
788
- longitude: -65.81766
789
- min_latitude:
790
- min_longitude:
791
- max_latitude:
792
- max_longitude:
793
- name: Rio Grande
794
- comments:
795
- '62':
796
- unofficial_names: Sabana Grande
797
- translations:
798
- en: Sabana Grande
799
- geo:
800
- latitude: 18.09385
801
- longitude: -66.94962
802
- min_latitude:
803
- min_longitude:
804
- max_latitude:
805
- max_longitude:
806
- name: Sabana Grande
807
- comments:
808
- '63':
809
- unofficial_names: Salinas
810
- translations:
811
- en: Salinas
812
- geo:
813
- latitude: 18.01746
814
- longitude: -66.25378
815
- min_latitude:
816
- min_longitude:
817
- max_latitude:
818
- max_longitude:
819
- name: Salinas
820
- comments:
821
- '64':
822
- unofficial_names: San German
823
- translations:
824
- en: San German
825
- geo:
826
- latitude: 18.11468
827
- longitude: -67.03573
828
- min_latitude:
829
- min_longitude:
830
- max_latitude:
831
- max_longitude:
832
- name: San German
833
- comments:
834
- '65':
835
- unofficial_names: San Juan
836
- translations:
837
- en: San Juan
838
- geo:
839
- latitude: 18.45095
840
- longitude: -66.09169
841
- min_latitude:
842
- min_longitude:
843
- max_latitude:
844
- max_longitude:
845
- name: San Juan
846
- comments:
847
- '66':
848
- unofficial_names: San Lorenzo
849
- translations:
850
- en: San Lorenzo
851
- geo:
852
- latitude: 18.15496
853
- longitude: -65.97461
854
- min_latitude:
855
- min_longitude:
856
- max_latitude:
857
- max_longitude:
858
- name: San Lorenzo
859
- comments:
860
- '67':
861
- unofficial_names: San Sebastian
862
- translations:
863
- en: San Sebastian
864
- geo:
865
- latitude: 18.32912
866
- longitude: -66.97462
867
- min_latitude:
868
- min_longitude:
869
- max_latitude:
870
- max_longitude:
871
- name: San Sebastian
872
- comments:
873
- '68':
874
- unofficial_names: Santa Isabel
875
- translations:
876
- en: Santa Isabel
877
- geo:
878
- latitude: 17.99663
879
- longitude: -66.38711
880
- min_latitude:
881
- min_longitude:
882
- max_latitude:
883
- max_longitude:
884
- name: Santa Isabel
885
- comments:
886
- '69':
887
- unofficial_names: Toa Alta
888
- translations:
889
- en: Toa Alta
890
- geo:
891
- latitude: 18.36606
892
- longitude: -66.25378
893
- min_latitude:
894
- min_longitude:
895
- max_latitude:
896
- max_longitude:
897
- name: Toa Alta
898
- comments:
899
- '70':
900
- unofficial_names: Toa Baja
901
- translations:
902
- en: Toa Baja
903
- geo:
904
- latitude: 18.43176
905
- longitude: -66.21291
906
- min_latitude:
907
- min_longitude:
908
- max_latitude:
909
- max_longitude:
910
- name: Toa Baja
911
- comments:
912
- '71':
913
- unofficial_names: Trujillo Alto
914
- translations:
915
- en: Trujillo Alto
916
- geo:
917
- latitude: 18.34162
918
- longitude: -66.00517
919
- min_latitude:
920
- min_longitude:
921
- max_latitude:
922
- max_longitude:
923
- name: Trujillo Alto
924
- comments:
925
- '72':
926
- unofficial_names: Utuado
927
- translations:
928
- en: Utuado
929
- geo:
930
- latitude: 18.27301
931
- longitude: -66.69962
932
- min_latitude:
933
- min_longitude:
934
- max_latitude:
935
- max_longitude:
936
- name: Utuado
937
- comments:
938
- '73':
939
- unofficial_names: Vega Alta
940
- translations:
941
- en: Vega Alta
942
- geo:
943
- latitude: 18.4105
944
- longitude: -66.33295
945
- min_latitude:
946
- min_longitude:
947
- max_latitude:
948
- max_longitude:
949
- name: Vega Alta
950
- comments:
951
- '74':
952
- unofficial_names: Vega Baja
953
- translations:
954
- en: Vega Baja
955
- geo:
956
- latitude: 18.42578
957
- longitude: -66.39961
958
- min_latitude:
959
- min_longitude:
960
- max_latitude:
961
- max_longitude:
962
- name: Vega Baja
963
- comments:
964
- '75':
965
- unofficial_names: Vieques
966
- translations:
967
- en: Vieques
968
- geo:
969
- latitude: 18.12913
970
- longitude: -65.4371
971
- min_latitude:
972
- min_longitude:
973
- max_latitude:
974
- max_longitude:
975
- name: Vieques
976
- comments:
977
- '76':
978
- unofficial_names: Villalba
979
- translations:
980
- en: Villalba
981
- geo:
982
- latitude: 18.12913
983
- longitude: -66.47739
984
- min_latitude:
985
- min_longitude:
986
- max_latitude:
987
- max_longitude:
988
- name: Villalba
989
- comments:
990
- '77':
991
- unofficial_names: Yabucoa
992
- translations:
993
- en: Yabucoa
994
- geo:
995
- latitude: 18.07302
996
- longitude: -65.88711
997
- min_latitude:
998
- min_longitude:
999
- max_latitude:
1000
- max_longitude:
1001
- name: Yabucoa
1002
- comments:
1003
- '78':
1004
- unofficial_names: Yauco
1005
- translations:
1006
- en: Yauco
1007
- geo:
1008
- latitude: 18.07857
1009
- longitude: -66.85518
1010
- min_latitude:
1011
- min_longitude:
1012
- max_latitude:
1013
- max_longitude:
1014
- name: Yauco
1015
- comments: