countries 3.0.1 → 3.1.0

Sign up to get free protection for your applications and to get access to all the features.
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: