countries 5.0.1 → 5.1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (498) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +42 -3
  3. data/README.markdown +51 -74
  4. data/Rakefile +15 -21
  5. data/UPGRADE.md +39 -0
  6. data/countries.gemspec +0 -1
  7. data/lib/countries/cache/countries.json +1 -1
  8. data/lib/countries/cache/locales/ab.json +1 -1
  9. data/lib/countries/cache/locales/af.json +1 -1
  10. data/lib/countries/cache/locales/ak.json +1 -1
  11. data/lib/countries/cache/locales/am.json +1 -1
  12. data/lib/countries/cache/locales/an.json +1 -1
  13. data/lib/countries/cache/locales/ar.json +1 -1
  14. data/lib/countries/cache/locales/as.json +1 -1
  15. data/lib/countries/cache/locales/ay.json +1 -1
  16. data/lib/countries/cache/locales/az.json +1 -1
  17. data/lib/countries/cache/locales/ba.json +1 -1
  18. data/lib/countries/cache/locales/be.json +1 -1
  19. data/lib/countries/cache/locales/bg.json +1 -1
  20. data/lib/countries/cache/locales/bi.json +1 -1
  21. data/lib/countries/cache/locales/bn-in.json +1 -1
  22. data/lib/countries/cache/locales/bn.json +1 -1
  23. data/lib/countries/cache/locales/br.json +1 -1
  24. data/lib/countries/cache/locales/bs.json +1 -1
  25. data/lib/countries/cache/locales/ca.json +1 -1
  26. data/lib/countries/cache/locales/ce.json +1 -1
  27. data/lib/countries/cache/locales/ch.json +1 -1
  28. data/lib/countries/cache/locales/cs.json +1 -1
  29. data/lib/countries/cache/locales/cv.json +1 -1
  30. data/lib/countries/cache/locales/cy.json +1 -1
  31. data/lib/countries/cache/locales/da.json +1 -1
  32. data/lib/countries/cache/locales/de.json +1 -1
  33. data/lib/countries/cache/locales/dv.json +1 -1
  34. data/lib/countries/cache/locales/dz.json +1 -1
  35. data/lib/countries/cache/locales/ee.json +1 -1
  36. data/lib/countries/cache/locales/el.json +1 -1
  37. data/lib/countries/cache/locales/en.json +1 -1
  38. data/lib/countries/cache/locales/eo.json +1 -1
  39. data/lib/countries/cache/locales/es.json +1 -1
  40. data/lib/countries/cache/locales/et.json +1 -1
  41. data/lib/countries/cache/locales/eu.json +1 -1
  42. data/lib/countries/cache/locales/fa.json +1 -1
  43. data/lib/countries/cache/locales/ff.json +1 -1
  44. data/lib/countries/cache/locales/fi.json +1 -1
  45. data/lib/countries/cache/locales/fo.json +1 -1
  46. data/lib/countries/cache/locales/fr.json +1 -1
  47. data/lib/countries/cache/locales/fy.json +1 -1
  48. data/lib/countries/cache/locales/ga.json +1 -1
  49. data/lib/countries/cache/locales/gl.json +1 -1
  50. data/lib/countries/cache/locales/gn.json +1 -1
  51. data/lib/countries/cache/locales/gu.json +1 -1
  52. data/lib/countries/cache/locales/gv.json +1 -1
  53. data/lib/countries/cache/locales/ha.json +1 -1
  54. data/lib/countries/cache/locales/he.json +1 -1
  55. data/lib/countries/cache/locales/hi.json +1 -1
  56. data/lib/countries/cache/locales/hr.json +1 -1
  57. data/lib/countries/cache/locales/ht.json +1 -1
  58. data/lib/countries/cache/locales/hu.json +1 -1
  59. data/lib/countries/cache/locales/hy.json +1 -1
  60. data/lib/countries/cache/locales/ia.json +1 -1
  61. data/lib/countries/cache/locales/id.json +1 -1
  62. data/lib/countries/cache/locales/io.json +1 -1
  63. data/lib/countries/cache/locales/is.json +1 -1
  64. data/lib/countries/cache/locales/it.json +1 -1
  65. data/lib/countries/cache/locales/iu.json +1 -1
  66. data/lib/countries/cache/locales/ja.json +1 -1
  67. data/lib/countries/cache/locales/ka.json +1 -1
  68. data/lib/countries/cache/locales/ki.json +1 -1
  69. data/lib/countries/cache/locales/kk.json +1 -1
  70. data/lib/countries/cache/locales/kl.json +1 -1
  71. data/lib/countries/cache/locales/km.json +1 -1
  72. data/lib/countries/cache/locales/kn.json +1 -1
  73. data/lib/countries/cache/locales/ko.json +1 -1
  74. data/lib/countries/cache/locales/kv.json +1 -1
  75. data/lib/countries/cache/locales/kw.json +1 -1
  76. data/lib/countries/cache/locales/ky.json +1 -1
  77. data/lib/countries/cache/locales/lo.json +1 -1
  78. data/lib/countries/cache/locales/lt.json +1 -1
  79. data/lib/countries/cache/locales/lv.json +1 -1
  80. data/lib/countries/cache/locales/mi.json +1 -1
  81. data/lib/countries/cache/locales/mk.json +1 -1
  82. data/lib/countries/cache/locales/ml.json +1 -1
  83. data/lib/countries/cache/locales/mn.json +1 -1
  84. data/lib/countries/cache/locales/mr.json +1 -1
  85. data/lib/countries/cache/locales/ms.json +1 -1
  86. data/lib/countries/cache/locales/mt.json +1 -1
  87. data/lib/countries/cache/locales/my.json +1 -1
  88. data/lib/countries/cache/locales/na.json +1 -1
  89. data/lib/countries/cache/locales/nb.json +1 -1
  90. data/lib/countries/cache/locales/ne.json +1 -1
  91. data/lib/countries/cache/locales/nl.json +1 -1
  92. data/lib/countries/cache/locales/nn.json +1 -1
  93. data/lib/countries/cache/locales/nv.json +1 -1
  94. data/lib/countries/cache/locales/oc.json +1 -1
  95. data/lib/countries/cache/locales/or.json +1 -1
  96. data/lib/countries/cache/locales/pa.json +1 -1
  97. data/lib/countries/cache/locales/pi.json +1 -1
  98. data/lib/countries/cache/locales/pl.json +1 -1
  99. data/lib/countries/cache/locales/ps.json +1 -1
  100. data/lib/countries/cache/locales/pt-br.json +1 -1
  101. data/lib/countries/cache/locales/pt.json +1 -1
  102. data/lib/countries/cache/locales/ro.json +1 -1
  103. data/lib/countries/cache/locales/ru.json +1 -1
  104. data/lib/countries/cache/locales/rw.json +1 -1
  105. data/lib/countries/cache/locales/sc.json +1 -1
  106. data/lib/countries/cache/locales/sd.json +1 -1
  107. data/lib/countries/cache/locales/si.json +1 -1
  108. data/lib/countries/cache/locales/sk.json +1 -1
  109. data/lib/countries/cache/locales/sl.json +1 -1
  110. data/lib/countries/cache/locales/so.json +1 -1
  111. data/lib/countries/cache/locales/sq.json +1 -1
  112. data/lib/countries/cache/locales/sr.json +1 -1
  113. data/lib/countries/cache/locales/sv.json +1 -1
  114. data/lib/countries/cache/locales/sw.json +1 -1
  115. data/lib/countries/cache/locales/ta.json +1 -1
  116. data/lib/countries/cache/locales/te.json +1 -1
  117. data/lib/countries/cache/locales/tg.json +1 -1
  118. data/lib/countries/cache/locales/th.json +1 -1
  119. data/lib/countries/cache/locales/ti.json +1 -1
  120. data/lib/countries/cache/locales/tk.json +1 -1
  121. data/lib/countries/cache/locales/tl.json +1 -1
  122. data/lib/countries/cache/locales/tr.json +1 -1
  123. data/lib/countries/cache/locales/tt.json +1 -1
  124. data/lib/countries/cache/locales/ug.json +1 -1
  125. data/lib/countries/cache/locales/uk.json +1 -1
  126. data/lib/countries/cache/locales/ur.json +1 -1
  127. data/lib/countries/cache/locales/uz.json +1 -1
  128. data/lib/countries/cache/locales/ve.json +1 -1
  129. data/lib/countries/cache/locales/vi.json +1 -1
  130. data/lib/countries/cache/locales/wa.json +1 -1
  131. data/lib/countries/cache/locales/wo.json +1 -1
  132. data/lib/countries/cache/locales/xh.json +1 -1
  133. data/lib/countries/cache/locales/yo.json +1 -1
  134. data/lib/countries/cache/locales/zh-cn.json +1 -1
  135. data/lib/countries/cache/locales/zh-hk.json +1 -1
  136. data/lib/countries/cache/locales/zh-tw.json +1 -1
  137. data/lib/countries/cache/locales/zu.json +1 -1
  138. data/lib/countries/country/class_methods.rb +8 -26
  139. data/lib/countries/country.rb +31 -5
  140. data/lib/countries/data/countries/AU.yaml +1 -1
  141. data/lib/countries/data/countries/BS.yaml +1 -2
  142. data/lib/countries/data/countries/CZ.yaml +1 -0
  143. data/lib/countries/data/countries/GB.yaml +3 -0
  144. data/lib/countries/data/countries/GM.yaml +1 -1
  145. data/lib/countries/data/countries/MK.yaml +1 -0
  146. data/lib/countries/data/countries/MM.yaml +1 -1
  147. data/lib/countries/data/countries/NL.yaml +1 -0
  148. data/lib/countries/data/countries/TH.yaml +1 -0
  149. data/lib/countries/data/countries/TW.yaml +1 -1
  150. data/lib/countries/data/countries/US.yaml +1 -1
  151. data/lib/countries/data/countries/VI.yaml +1 -0
  152. data/lib/countries/data/subdivisions/AD.yaml +14 -7
  153. data/lib/countries/data/subdivisions/AE.yaml +14 -7
  154. data/lib/countries/data/subdivisions/AF.yaml +196 -201
  155. data/lib/countries/data/subdivisions/AG.yaml +16 -22
  156. data/lib/countries/data/subdivisions/AL.yaml +24 -12
  157. data/lib/countries/data/subdivisions/AM.yaml +22 -11
  158. data/lib/countries/data/subdivisions/AO.yaml +36 -18
  159. data/lib/countries/data/subdivisions/AR.yaml +48 -24
  160. data/lib/countries/data/subdivisions/AT.yaml +18 -9
  161. data/lib/countries/data/subdivisions/AU.yaml +16 -8
  162. data/lib/countries/data/subdivisions/AZ.yaml +434 -412
  163. data/lib/countries/data/subdivisions/BA.yaml +75 -223
  164. data/lib/countries/data/subdivisions/BB.yaml +22 -11
  165. data/lib/countries/data/subdivisions/BD.yaml +188 -116
  166. data/lib/countries/data/subdivisions/BE.yaml +174 -161
  167. data/lib/countries/data/subdivisions/BF.yaml +2918 -2860
  168. data/lib/countries/data/subdivisions/BG.yaml +56 -28
  169. data/lib/countries/data/subdivisions/BH.yaml +8 -21
  170. data/lib/countries/data/subdivisions/BI.yaml +176 -157
  171. data/lib/countries/data/subdivisions/BJ.yaml +24 -12
  172. data/lib/countries/data/subdivisions/BN.yaml +8 -4
  173. data/lib/countries/data/subdivisions/BO.yaml +18 -9
  174. data/lib/countries/data/subdivisions/BQ.yaml +6 -3
  175. data/lib/countries/data/subdivisions/BR.yaml +54 -27
  176. data/lib/countries/data/subdivisions/BS.yaml +575 -697
  177. data/lib/countries/data/subdivisions/BT.yaml +40 -20
  178. data/lib/countries/data/subdivisions/BW.yaml +337 -321
  179. data/lib/countries/data/subdivisions/BY.yaml +106 -116
  180. data/lib/countries/data/subdivisions/BZ.yaml +12 -6
  181. data/lib/countries/data/subdivisions/CA.yaml +26 -13
  182. data/lib/countries/data/subdivisions/CD.yaml +488 -525
  183. data/lib/countries/data/subdivisions/CF.yaml +34 -17
  184. data/lib/countries/data/subdivisions/CG.yaml +40 -28
  185. data/lib/countries/data/subdivisions/CH.yaml +52 -26
  186. data/lib/countries/data/subdivisions/CI.yaml +244 -516
  187. data/lib/countries/data/subdivisions/CL.yaml +81 -65
  188. data/lib/countries/data/subdivisions/CM.yaml +20 -10
  189. data/lib/countries/data/subdivisions/CN.yaml +2152 -2084
  190. data/lib/countries/data/subdivisions/CO.yaml +66 -33
  191. data/lib/countries/data/subdivisions/CR.yaml +14 -7
  192. data/lib/countries/data/subdivisions/CU.yaml +32 -16
  193. data/lib/countries/data/subdivisions/CV.yaml +427 -401
  194. data/lib/countries/data/subdivisions/CY.yaml +12 -6
  195. data/lib/countries/data/subdivisions/CZ.yaml +1116 -85
  196. data/lib/countries/data/subdivisions/DE.yaml +32 -16
  197. data/lib/countries/data/subdivisions/DJ.yaml +12 -6
  198. data/lib/countries/data/subdivisions/DK.yaml +25 -17
  199. data/lib/countries/data/subdivisions/DM.yaml +20 -10
  200. data/lib/countries/data/subdivisions/DO.yaml +84 -42
  201. data/lib/countries/data/subdivisions/DZ.yaml +96 -48
  202. data/lib/countries/data/subdivisions/EC.yaml +158 -134
  203. data/lib/countries/data/subdivisions/EE.yaml +501 -334
  204. data/lib/countries/data/subdivisions/EG.yaml +54 -27
  205. data/lib/countries/data/subdivisions/ER.yaml +12 -6
  206. data/lib/countries/data/subdivisions/ES.yaml +1459 -1390
  207. data/lib/countries/data/subdivisions/ET.yaml +22 -11
  208. data/lib/countries/data/subdivisions/FI.yaml +185 -1
  209. data/lib/countries/data/subdivisions/FJ.yaml +443 -424
  210. data/lib/countries/data/subdivisions/FM.yaml +8 -4
  211. data/lib/countries/data/subdivisions/FR.yaml +438 -275
  212. data/lib/countries/data/subdivisions/GA.yaml +18 -9
  213. data/lib/countries/data/subdivisions/GB.yaml +1185 -1708
  214. data/lib/countries/data/subdivisions/GD.yaml +14 -7
  215. data/lib/countries/data/subdivisions/GE.yaml +24 -12
  216. data/lib/countries/data/subdivisions/GH.yaml +114 -155
  217. data/lib/countries/data/subdivisions/GL.yaml +24 -79
  218. data/lib/countries/data/subdivisions/GM.yaml +12 -6
  219. data/lib/countries/data/subdivisions/GN.yaml +444 -403
  220. data/lib/countries/data/subdivisions/GQ.yaml +24 -13
  221. data/lib/countries/data/subdivisions/GR.yaml +114 -73
  222. data/lib/countries/data/subdivisions/GT.yaml +44 -22
  223. data/lib/countries/data/subdivisions/GW.yaml +69 -57
  224. data/lib/countries/data/subdivisions/GY.yaml +20 -10
  225. data/lib/countries/data/subdivisions/HN.yaml +36 -18
  226. data/lib/countries/data/subdivisions/HR.yaml +42 -21
  227. data/lib/countries/data/subdivisions/HT.yaml +73 -63
  228. data/lib/countries/data/subdivisions/HU.yaml +106 -63
  229. data/lib/countries/data/subdivisions/ID.yaml +229 -188
  230. data/lib/countries/data/subdivisions/IE.yaml +128 -97
  231. data/lib/countries/data/subdivisions/IL.yaml +12 -6
  232. data/lib/countries/data/subdivisions/IN.yaml +245 -396
  233. data/lib/countries/data/subdivisions/IQ.yaml +111 -91
  234. data/lib/countries/data/subdivisions/IR.yaml +1463 -1451
  235. data/lib/countries/data/subdivisions/IS.yaml +160 -25
  236. data/lib/countries/data/subdivisions/IT.yaml +8740 -8292
  237. data/lib/countries/data/subdivisions/JM.yaml +28 -14
  238. data/lib/countries/data/subdivisions/JO.yaml +24 -12
  239. data/lib/countries/data/subdivisions/JP.yaml +94 -47
  240. data/lib/countries/data/subdivisions/KE.yaml +95 -48
  241. data/lib/countries/data/subdivisions/KG.yaml +95 -86
  242. data/lib/countries/data/subdivisions/KH.yaml +64 -39
  243. data/lib/countries/data/subdivisions/KI.yaml +6 -3
  244. data/lib/countries/data/subdivisions/KM.yaml +6 -3
  245. data/lib/countries/data/subdivisions/KN.yaml +32 -16
  246. data/lib/countries/data/subdivisions/KP.yaml +24 -227
  247. data/lib/countries/data/subdivisions/KR.yaml +34 -17
  248. data/lib/countries/data/subdivisions/KW.yaml +12 -6
  249. data/lib/countries/data/subdivisions/KZ.yaml +47 -102
  250. data/lib/countries/data/subdivisions/LA.yaml +36 -34
  251. data/lib/countries/data/subdivisions/LB.yaml +71 -63
  252. data/lib/countries/data/subdivisions/LC.yaml +116 -106
  253. data/lib/countries/data/subdivisions/LI.yaml +22 -11
  254. data/lib/countries/data/subdivisions/LK.yaml +445 -411
  255. data/lib/countries/data/subdivisions/LR.yaml +146 -129
  256. data/lib/countries/data/subdivisions/LS.yaml +20 -10
  257. data/lib/countries/data/subdivisions/LT.yaml +1706 -1636
  258. data/lib/countries/data/subdivisions/LU.yaml +24 -12
  259. data/lib/countries/data/subdivisions/LV.yaml +1623 -1577
  260. data/lib/countries/data/subdivisions/LY.yaml +44 -22
  261. data/lib/countries/data/subdivisions/MA.yaml +810 -1589
  262. data/lib/countries/data/subdivisions/MC.yaml +261 -244
  263. data/lib/countries/data/subdivisions/MD.yaml +74 -79
  264. data/lib/countries/data/subdivisions/ME.yaml +217 -195
  265. data/lib/countries/data/subdivisions/MG.yaml +12 -6
  266. data/lib/countries/data/subdivisions/MH.yaml +167 -140
  267. data/lib/countries/data/subdivisions/MK.yaml +160 -80
  268. data/lib/countries/data/subdivisions/ML.yaml +48 -37
  269. data/lib/countries/data/subdivisions/MM.yaml +30 -15
  270. data/lib/countries/data/subdivisions/MN.yaml +44 -22
  271. data/lib/countries/data/subdivisions/MR.yaml +30 -34
  272. data/lib/countries/data/subdivisions/MT.yaml +136 -68
  273. data/lib/countries/data/subdivisions/MU.yaml +24 -262
  274. data/lib/countries/data/subdivisions/MV.yaml +161 -254
  275. data/lib/countries/data/subdivisions/MW.yaml +250 -219
  276. data/lib/countries/data/subdivisions/MX.yaml +67 -47
  277. data/lib/countries/data/subdivisions/MY.yaml +32 -16
  278. data/lib/countries/data/subdivisions/MZ.yaml +22 -11
  279. data/lib/countries/data/subdivisions/NA.yaml +58 -44
  280. data/lib/countries/data/subdivisions/NE.yaml +16 -8
  281. data/lib/countries/data/subdivisions/NG.yaml +74 -37
  282. data/lib/countries/data/subdivisions/NI.yaml +34 -17
  283. data/lib/countries/data/subdivisions/NL.yaml +303 -285
  284. data/lib/countries/data/subdivisions/NO.yaml +39 -17
  285. data/lib/countries/data/subdivisions/NP.yaml +302 -276
  286. data/lib/countries/data/subdivisions/NR.yaml +28 -14
  287. data/lib/countries/data/subdivisions/NZ.yaml +34 -17
  288. data/lib/countries/data/subdivisions/OM.yaml +260 -311
  289. data/lib/countries/data/subdivisions/PA.yaml +57 -44
  290. data/lib/countries/data/subdivisions/PE.yaml +107 -81
  291. data/lib/countries/data/subdivisions/PG.yaml +163 -158
  292. data/lib/countries/data/subdivisions/PH.yaml +5062 -4992
  293. data/lib/countries/data/subdivisions/PK.yaml +145 -235
  294. data/lib/countries/data/subdivisions/PL.yaml +51 -3
  295. data/lib/countries/data/subdivisions/PS.yaml +32 -16
  296. data/lib/countries/data/subdivisions/PT.yaml +40 -20
  297. data/lib/countries/data/subdivisions/PW.yaml +32 -16
  298. data/lib/countries/data/subdivisions/PY.yaml +36 -18
  299. data/lib/countries/data/subdivisions/QA.yaml +27 -78
  300. data/lib/countries/data/subdivisions/RO.yaml +84 -42
  301. data/lib/countries/data/subdivisions/RS.yaml +104 -72
  302. data/lib/countries/data/subdivisions/RU.yaml +166 -83
  303. data/lib/countries/data/subdivisions/RW.yaml +10 -5
  304. data/lib/countries/data/subdivisions/SA.yaml +26 -13
  305. data/lib/countries/data/subdivisions/SB.yaml +20 -10
  306. data/lib/countries/data/subdivisions/SC.yaml +54 -25
  307. data/lib/countries/data/subdivisions/SD.yaml +798 -780
  308. data/lib/countries/data/subdivisions/SE.yaml +42 -21
  309. data/lib/countries/data/subdivisions/SG.yaml +15 -10
  310. data/lib/countries/data/subdivisions/SH.yaml +21 -32
  311. data/lib/countries/data/subdivisions/SI.yaml +475 -263
  312. data/lib/countries/data/subdivisions/SK.yaml +16 -8
  313. data/lib/countries/data/subdivisions/SL.yaml +23 -18
  314. data/lib/countries/data/subdivisions/SM.yaml +18 -9
  315. data/lib/countries/data/subdivisions/SN.yaml +188 -174
  316. data/lib/countries/data/subdivisions/SO.yaml +36 -18
  317. data/lib/countries/data/subdivisions/SR.yaml +20 -10
  318. data/lib/countries/data/subdivisions/SS.yaml +20 -10
  319. data/lib/countries/data/subdivisions/ST.yaml +38 -52
  320. data/lib/countries/data/subdivisions/SV.yaml +28 -14
  321. data/lib/countries/data/subdivisions/SY.yaml +28 -14
  322. data/lib/countries/data/subdivisions/SZ.yaml +8 -4
  323. data/lib/countries/data/subdivisions/TD.yaml +312 -303
  324. data/lib/countries/data/subdivisions/TG.yaml +10 -5
  325. data/lib/countries/data/subdivisions/TH.yaml +211 -133
  326. data/lib/countries/data/subdivisions/TJ.yaml +161 -156
  327. data/lib/countries/data/subdivisions/TL.yaml +26 -13
  328. data/lib/countries/data/subdivisions/TM.yaml +12 -6
  329. data/lib/countries/data/subdivisions/TN.yaml +48 -24
  330. data/lib/countries/data/subdivisions/TO.yaml +10 -5
  331. data/lib/countries/data/subdivisions/TR.yaml +162 -81
  332. data/lib/countries/data/subdivisions/TT.yaml +128 -160
  333. data/lib/countries/data/subdivisions/TV.yaml +57 -63
  334. data/lib/countries/data/subdivisions/TW.yaml +143 -183
  335. data/lib/countries/data/subdivisions/TZ.yaml +62 -31
  336. data/lib/countries/data/subdivisions/UA.yaml +55 -28
  337. data/lib/countries/data/subdivisions/UG.yaml +4806 -4660
  338. data/lib/countries/data/subdivisions/UM.yaml +18 -9
  339. data/lib/countries/data/subdivisions/US.yaml +114 -57
  340. data/lib/countries/data/subdivisions/UY.yaml +99 -80
  341. data/lib/countries/data/subdivisions/UZ.yaml +28 -14
  342. data/lib/countries/data/subdivisions/VC.yaml +12 -6
  343. data/lib/countries/data/subdivisions/VE.yaml +50 -25
  344. data/lib/countries/data/subdivisions/VN.yaml +3576 -3513
  345. data/lib/countries/data/subdivisions/VU.yaml +12 -6
  346. data/lib/countries/data/subdivisions/WF.yaml +6 -3
  347. data/lib/countries/data/subdivisions/WS.yaml +22 -11
  348. data/lib/countries/data/subdivisions/YE.yaml +222 -200
  349. data/lib/countries/data/subdivisions/ZA.yaml +86 -100
  350. data/lib/countries/data/subdivisions/ZM.yaml +20 -10
  351. data/lib/countries/data/subdivisions/ZW.yaml +20 -10
  352. data/lib/countries/data/translations/countries-ab.yaml +254 -0
  353. data/lib/countries/data/translations/countries-af.yaml +254 -0
  354. data/lib/countries/data/translations/countries-ak.yaml +254 -0
  355. data/lib/countries/data/translations/countries-am.yaml +254 -0
  356. data/lib/countries/data/translations/countries-an.yaml +254 -0
  357. data/lib/countries/data/translations/countries-ar.yaml +254 -0
  358. data/lib/countries/data/translations/countries-as.yaml +254 -0
  359. data/lib/countries/data/translations/countries-ay.yaml +254 -0
  360. data/lib/countries/data/translations/countries-az.yaml +254 -0
  361. data/lib/countries/data/translations/countries-ba.yaml +254 -0
  362. data/lib/countries/data/translations/countries-be.yaml +254 -0
  363. data/lib/countries/data/translations/countries-bg.yaml +254 -0
  364. data/lib/countries/data/translations/countries-bi.yaml +254 -0
  365. data/lib/countries/data/translations/countries-bn.yaml +254 -0
  366. data/lib/countries/data/translations/countries-bn_IN.yaml +254 -0
  367. data/lib/countries/data/translations/countries-br.yaml +254 -0
  368. data/lib/countries/data/translations/countries-bs.yaml +254 -0
  369. data/lib/countries/data/translations/countries-ca.yaml +254 -0
  370. data/lib/countries/data/translations/countries-ce.yaml +254 -0
  371. data/lib/countries/data/translations/countries-ch.yaml +254 -0
  372. data/lib/countries/data/translations/countries-cs.yaml +254 -0
  373. data/lib/countries/data/translations/countries-cv.yaml +254 -0
  374. data/lib/countries/data/translations/countries-cy.yaml +254 -0
  375. data/lib/countries/data/translations/countries-da.yaml +254 -0
  376. data/lib/countries/data/translations/countries-de.yaml +254 -0
  377. data/lib/countries/data/translations/countries-dv.yaml +254 -0
  378. data/lib/countries/data/translations/countries-dz.yaml +254 -0
  379. data/lib/countries/data/translations/countries-ee.yaml +254 -0
  380. data/lib/countries/data/translations/countries-el.yaml +254 -0
  381. data/lib/countries/data/translations/countries-en.yaml +254 -0
  382. data/lib/countries/data/translations/countries-eo.yaml +254 -0
  383. data/lib/countries/data/translations/countries-es.yaml +254 -0
  384. data/lib/countries/data/translations/countries-et.yaml +254 -0
  385. data/lib/countries/data/translations/countries-eu.yaml +254 -0
  386. data/lib/countries/data/translations/countries-fa.yaml +254 -0
  387. data/lib/countries/data/translations/countries-ff.yaml +254 -0
  388. data/lib/countries/data/translations/countries-fi.yaml +254 -0
  389. data/lib/countries/data/translations/countries-fo.yaml +254 -0
  390. data/lib/countries/data/translations/countries-fr.yaml +254 -0
  391. data/lib/countries/data/translations/countries-fy.yaml +254 -0
  392. data/lib/countries/data/translations/countries-ga.yaml +254 -0
  393. data/lib/countries/data/translations/countries-gl.yaml +254 -0
  394. data/lib/countries/data/translations/countries-gn.yaml +254 -0
  395. data/lib/countries/data/translations/countries-gu.yaml +254 -0
  396. data/lib/countries/data/translations/countries-gv.yaml +254 -0
  397. data/lib/countries/data/translations/countries-ha.yaml +254 -0
  398. data/lib/countries/data/translations/countries-he.yaml +254 -0
  399. data/lib/countries/data/translations/countries-hi.yaml +254 -0
  400. data/lib/countries/data/translations/countries-hr.yaml +254 -0
  401. data/lib/countries/data/translations/countries-ht.yaml +254 -0
  402. data/lib/countries/data/translations/countries-hu.yaml +254 -0
  403. data/lib/countries/data/translations/countries-hy.yaml +254 -0
  404. data/lib/countries/data/translations/countries-ia.yaml +254 -0
  405. data/lib/countries/data/translations/countries-id.yaml +254 -0
  406. data/lib/countries/data/translations/countries-io.yaml +254 -0
  407. data/lib/countries/data/translations/countries-is.yaml +254 -0
  408. data/lib/countries/data/translations/countries-it.yaml +254 -0
  409. data/lib/countries/data/translations/countries-iu.yaml +254 -0
  410. data/lib/countries/data/translations/countries-ja.yaml +254 -0
  411. data/lib/countries/data/translations/countries-ka.yaml +254 -0
  412. data/lib/countries/data/translations/countries-ki.yaml +254 -0
  413. data/lib/countries/data/translations/countries-kk.yaml +254 -0
  414. data/lib/countries/data/translations/countries-kl.yaml +254 -0
  415. data/lib/countries/data/translations/countries-km.yaml +254 -0
  416. data/lib/countries/data/translations/countries-kn.yaml +254 -0
  417. data/lib/countries/data/translations/countries-ko.yaml +254 -0
  418. data/lib/countries/data/translations/countries-ku.yaml +254 -0
  419. data/lib/countries/data/translations/countries-kv.yaml +254 -0
  420. data/lib/countries/data/translations/countries-kw.yaml +254 -0
  421. data/lib/countries/data/translations/countries-ky.yaml +254 -0
  422. data/lib/countries/data/translations/countries-lo.yaml +254 -0
  423. data/lib/countries/data/translations/countries-lt.yaml +254 -0
  424. data/lib/countries/data/translations/countries-lv.yaml +254 -0
  425. data/lib/countries/data/translations/countries-mi.yaml +254 -0
  426. data/lib/countries/data/translations/countries-mk.yaml +254 -0
  427. data/lib/countries/data/translations/countries-ml.yaml +254 -0
  428. data/lib/countries/data/translations/countries-mn.yaml +254 -0
  429. data/lib/countries/data/translations/countries-mr.yaml +254 -0
  430. data/lib/countries/data/translations/countries-ms.yaml +254 -0
  431. data/lib/countries/data/translations/countries-mt.yaml +254 -0
  432. data/lib/countries/data/translations/countries-my.yaml +254 -0
  433. data/lib/countries/data/translations/countries-na.yaml +254 -0
  434. data/lib/countries/data/translations/countries-nb.yaml +254 -0
  435. data/lib/countries/data/translations/countries-ne.yaml +254 -0
  436. data/lib/countries/data/translations/countries-nl.yaml +254 -0
  437. data/lib/countries/data/translations/countries-nn.yaml +254 -0
  438. data/lib/countries/data/translations/countries-nv.yaml +254 -0
  439. data/lib/countries/data/translations/countries-oc.yaml +254 -0
  440. data/lib/countries/data/translations/countries-or.yaml +254 -0
  441. data/lib/countries/data/translations/countries-pa.yaml +254 -0
  442. data/lib/countries/data/translations/countries-pi.yaml +254 -0
  443. data/lib/countries/data/translations/countries-pl.yaml +254 -0
  444. data/lib/countries/data/translations/countries-ps.yaml +254 -0
  445. data/lib/countries/data/translations/countries-pt.yaml +254 -0
  446. data/lib/countries/data/translations/countries-pt_BR.yaml +254 -0
  447. data/lib/countries/data/translations/countries-ro.yaml +254 -0
  448. data/lib/countries/data/translations/countries-ru.yaml +254 -0
  449. data/lib/countries/data/translations/countries-rw.yaml +254 -0
  450. data/lib/countries/data/translations/countries-sc.yaml +254 -0
  451. data/lib/countries/data/translations/countries-sd.yaml +254 -0
  452. data/lib/countries/data/translations/countries-si.yaml +254 -0
  453. data/lib/countries/data/translations/countries-sk.yaml +254 -0
  454. data/lib/countries/data/translations/countries-sl.yaml +254 -0
  455. data/lib/countries/data/translations/countries-so.yaml +254 -0
  456. data/lib/countries/data/translations/countries-sq.yaml +254 -0
  457. data/lib/countries/data/translations/countries-sr.yaml +254 -0
  458. data/lib/countries/data/translations/countries-sv.yaml +254 -0
  459. data/lib/countries/data/translations/countries-sw.yaml +254 -0
  460. data/lib/countries/data/translations/countries-ta.yaml +254 -0
  461. data/lib/countries/data/translations/countries-te.yaml +254 -0
  462. data/lib/countries/data/translations/countries-tg.yaml +254 -0
  463. data/lib/countries/data/translations/countries-th.yaml +254 -0
  464. data/lib/countries/data/translations/countries-ti.yaml +254 -0
  465. data/lib/countries/data/translations/countries-tk.yaml +254 -0
  466. data/lib/countries/data/translations/countries-tl.yaml +254 -0
  467. data/lib/countries/data/translations/countries-tr.yaml +254 -0
  468. data/lib/countries/data/translations/countries-tt.yaml +254 -0
  469. data/lib/countries/data/translations/countries-ug.yaml +254 -0
  470. data/lib/countries/data/translations/countries-uk.yaml +254 -0
  471. data/lib/countries/data/translations/countries-ur.yaml +254 -0
  472. data/lib/countries/data/translations/countries-uz.yaml +254 -0
  473. data/lib/countries/data/translations/countries-ve.yaml +254 -0
  474. data/lib/countries/data/translations/countries-vi.yaml +254 -0
  475. data/lib/countries/data/translations/countries-wa.yaml +254 -0
  476. data/lib/countries/data/translations/countries-wo.yaml +254 -0
  477. data/lib/countries/data/translations/countries-xh.yaml +254 -0
  478. data/lib/countries/data/translations/countries-yo.yaml +254 -0
  479. data/lib/countries/data/translations/countries-zh_CN.yaml +254 -0
  480. data/lib/countries/data/translations/countries-zh_HK.yaml +254 -0
  481. data/lib/countries/data/translations/countries-zh_TW.yaml +254 -0
  482. data/lib/countries/data/translations/countries-zu.yaml +254 -0
  483. data/lib/countries/data.rb +40 -8
  484. data/lib/countries/iso3166.rb +0 -1
  485. data/lib/countries/sources/cldr/subdivision_updater.rb +1 -1
  486. data/lib/countries/subdivision.rb +19 -8
  487. data/lib/countries/version.rb +1 -1
  488. data/spec/country_spec.rb +63 -19
  489. data/spec/data_spec.rb +74 -5
  490. metadata +134 -24
  491. data/lib/countries/cache/locales/zh.json +0 -1
  492. data/lib/countries/data/subdivisions/AI.yaml +0 -197
  493. data/lib/countries/data/subdivisions/BM.yaml +0 -155
  494. data/lib/countries/data/subdivisions/CK.yaml +0 -155
  495. data/lib/countries/data/subdivisions/EH.yaml +0 -80
  496. data/lib/countries/data/subdivisions/SJ.yaml +0 -29
  497. data/lib/countries/data/subdivisions/TK.yaml +0 -43
  498. data/lib/countries/data/translation_corrections.yaml +0 -51
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3f4c18c20a21b358c31c0453a13252eb30f5b9aff3b2fc09803b83ab42bbc434
4
- data.tar.gz: a7b7997ff12a290673f51e3b672dd501fb0f42e9a02c17a0c2c75c92a593be27
3
+ metadata.gz: b239f5f25018bc1ba87fd49d3b1b8adfad49b7e24e4e17a2793aa886d1cd4c59
4
+ data.tar.gz: a6fc5738ec1c281a68efd1109d6763ad08a6082e63c2d400b7216d862b7e823a
5
5
  SHA512:
6
- metadata.gz: 23ffc95eb8c0584db74fc5cdebc3965020c5047784fc5e18b8a1064dc61e28a3962e4d32516fff593652ce8ae5c0fdfd05e3ac6389f975ca7777cc1f1399f978
7
- data.tar.gz: 5a749c3c933871d1716102959bcbd6a96f0f5207317267a645cdbac1dddc4daff0e66701bc735c605ad0cf3a53b7c2e0f54564ae84bf504b0b1b9d45408190f9
6
+ metadata.gz: da2b9eeb20881a037dffc3c0280405deac1d1be3c9ed01be1fe5bbb9ff1f8ace189ee97803371080e07df93118b3dd982bb67349f745252d2e7e411c14a90517
7
+ data.tar.gz: 1044da2ddbf3ec28d3676d480185f7ad6d370ac81dd9d2e07e77f637110db3a9d0689128072a273785aedf7b6b33b2aa9550d6417cd567cf371d375b40bdcaf8
data/CHANGELOG.md CHANGED
@@ -3,14 +3,53 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  This project adheres to [Semantic Versioning](https://semver.org/).
5
5
 
6
- ## [5.0.1] (https://github.com/countries/countries/releases/tag/v5.0.1') (2022/05/02 12:03 +00:00)
6
+ ## [5.1.2](https://github.com/countries/countries/releases/tag/v5.1.1') (2022/08/11 14:35 +00:00)
7
+
8
+ * Missing unofficial translations, addresses the remaining translations in [\#580](https://github.com/countries/countries/issues/580) - [\#764](https://github.com/countries/countries/pull/764) ([pmor](https://github.com/pmor))
9
+
10
+
11
+ ## [5.1.1](https://github.com/countries/countries/releases/tag/v5.1.1') (2022/07/18 09:10 +00:00)
12
+
13
+ **Important changes**
14
+
15
+ - Subdivision loading now respects the configured locales and will only load subdivision translations for the configured locales instead of loading all translations. This fixes [\#580](https://github.com/countries/countries/issues/580)
16
+
17
+ **Merged pull requests:**
18
+
19
+ * Refactor subdivision loading to respect the configured locales. [\#762](https://github.com/countries/countries/pull/762) ([pmor](https://github.com/pmor))
20
+ * Add an alternative name for USVI lookup [\#763](https://github.com/countries/countries/pull/763) ([tadejm](https://github.com/tadejm))
21
+
22
+
23
+ ## [5.1.0](https://github.com/countries/countries/releases/tag/v5.1.0') (2022/06/27 07:50 +00:00)
24
+
25
+ **Important changes**
26
+
27
+ - `Subdivision` now has a `type` attribute obtained from ISO3166-2 subdivision types. `type` is a _lowercase_ and _snake_cased_ string.
28
+ - Adds `Country#subdivision_types` and `#humanized_subdivision_types` to list a country's subdivision types
29
+ - Adds `Country#subdivisions_of_types(types)` to allow getting subdivisions of given type(s)
30
+ - `Country#states` is now deprecated to avoid confusion (this method was just an alias to `#subdivisions` and retuns all subdivisions, regarless of type)
31
+
32
+ **Merged pull requests:**
33
+
34
+ * Remove i18n_data dependency [\#755](https://github.com/countries/countries/pull/755) ([pmor](https://github.com/pmor))
35
+ * Update subdivision YAML with codes [\#757](https://github.com/countries/countries/pull/757) ([pmor](https://github.com/pmor))
36
+ * Add subdivision types from ISO3166-2 [\#758](https://github.com/countries/countries/pull/758) ([pmor](https://github.com/pmor))
37
+
38
+ ## [5.0.2](https://github.com/countries/countries/releases/tag/v5.0.2') (2022/06/02 20:01 +00:00)
39
+
40
+ **Merged pull requests:**
41
+
42
+ * Fix common name for IR [\#754](https://github.com/countries/countries/pull/754) ([pmor](https://github.com/pmor))
43
+ * Update MX subdivisions: Remove DIF and update some unofficial names [\#755](https://github.com/countries/countries/pull/755) ([pmor](https://github.com/pmor))
44
+
45
+ ## [5.0.1](https://github.com/countries/countries/releases/tag/v5.0.1') (2022/05/02 12:03 +00:00)
7
46
 
8
47
  **Merged pull requests:**
9
48
 
10
49
  * Added subdivision_names_with_codes method in documentation [\#747](https://github.com/countries/countries/pull/747) ([arymoraes](https://github.com/arymoraes))
11
- * Corrected Portuguese subdivision names by @FilipaDurao in [\#748](https://github.com/countries/countries/pull/748) ([FilipaDurao](https://github.com/FilipaDurao))
50
+ * Corrected Portuguese subdivision names [\#748](https://github.com/countries/countries/pull/748) ([FilipaDurao](https://github.com/FilipaDurao))
12
51
 
13
- ## [5.0.0] (https://github.com/countries/countries/releases/tag/v5.0.0') (2022/04/03 17:44 +00:00)
52
+ ## [5.0.0](https://github.com/countries/countries/releases/tag/v5.0.0') (2022/04/03 17:44 +00:00)
14
53
 
15
54
  **Breaking Changes**
16
55
 
data/README.markdown CHANGED
@@ -48,51 +48,11 @@ gem 'countries', require: 'countries/global'
48
48
 
49
49
  ## Upgrading to 4.2 and 5.x
50
50
 
51
- In release 4.2 the `#name` attribute was deprecated in favour of `#iso_short_name` and we added the `#iso_long_name` attribute, to make it clear that these attributes use the ISO3166 names, and are not the "common names" most people might expect, eg: The ISO name for "United Kingdom" is "United Kingdom of Great Britain and Northern Ireland", but if you're building a dropdown box to select a country, you're likely expecting to see "United Kingdom" instead.
51
+ Release 4.2.0 introduced changes to name attributes and finders and deprecated several methods to resolve some existing confusion regardign official ISO country names vs. the "common names" that are commonly used.
52
52
 
53
- "Common names" in English have been available in the translation data, via `#translation('en')`. As of release 4.2, a shortcut method has been added for simplicity, `#common_name`, which delegates to `#translation('en')`.
53
+ The 5.0 release removed these deprecated methods and also removed support for Ruby 2.5 and 2.6
54
54
 
55
- For additional clarity, the `#names` method, which was an alias to `#unofficial_names` has also been deprecated, together with the finder methods that use `name` or `names` attributes.
56
-
57
- The `#name` and `#names` attributes, and corresponding finder methods were removed in 5.0.
58
-
59
- The replacement finders added in 5.0 are:
60
-
61
- - `#find_by_name` => `#find_by_any_name` - Searches all the name attributes, same as before
62
- - `#find_by_names` => `#find_by_unofficial_names`
63
- - `#find_*_by_name` => `#find_*_by_any_name`
64
- - `#find_*_by_names` => `#find_*_by_unofficial_names`
65
-
66
- With the addition of the new name attributes, there are now also the following finders:
67
-
68
- - `#find_by_common_name`/`#find_*_by_common_name`
69
- - `#find_by_iso_short_name`/`#find_*_by_iso_short_name`
70
- - `#find_by_iso_long_name`/`#find_*_by_iso_long_name`
71
-
72
- For translated country names, we use data from [pkg-isocodes](https://salsa.debian.org/iso-codes-team/iso-codes), via the [i18n_data](https://github.com/grosser/i18n_data) gem, and these generally correspond to the expected "common names". These names and the corresponding methods have not been changed.
73
-
74
- The 5.0 release removed support for Ruby 2.5 (EOL 2021-03-01) and 2.6 (EOL 2022-03-31)
75
-
76
- ## Selective Loading of Locales
77
-
78
- As of 2.0 you can selectively load locales to reduce memory usage in production.
79
-
80
- By default we load `I18n.available_locales` if I18n is present, otherwise only `[:en]`. This means almost any Rails environment will only bring in its supported translations.
81
-
82
- You can add all the locales like this.
83
-
84
- ```ruby
85
- ISO3166.configure do |config|
86
- config.locales = [:af, :am, :ar, :as, :az, :be, :bg, :bn, :br, :bs, :ca, :cs, :cy, :da, :de, :dz, :el, :en, :eo, :es, :et, :eu, :fa, :fi, :fo, :fr, :ga, :gl, :gu, :he, :hi, :hr, :hu, :hy, :ia, :id, :is, :it, :ja, :ka, :kk, :km, :kn, :ko, :ku, :lt, :lv, :mi, :mk, :ml, :mn, :mr, :ms, :mt, :nb, :ne, :nl, :nn, :oc, :or, :pa, :pl, :ps, :pt, :ro, :ru, :rw, :si, :sk, :sl, :so, :sq, :sr, :sv, :sw, :ta, :te, :th, :ti, :tk, :tl, :tr, :tt, :ug, :uk, :ve, :vi, :wa, :wo, :xh, :zh, :zu]
87
- end
88
- ```
89
-
90
- or something a bit more simple
91
- ```ruby
92
- ISO3166.configure do |config|
93
- config.locales = [:en, :de, :fr, :es]
94
- end
95
- ```
55
+ Plase see [UPGRADE.md](../master/UPGRADE.md) for more information
96
56
 
97
57
  ## Attribute-Based Finder Methods
98
58
 
@@ -103,13 +63,13 @@ c = ISO3166::Country.find_country_by_iso_short_name('italy')
103
63
  c = ISO3166::Country.find_country_by_any_name('united states')
104
64
  h = ISO3166::Country.find_all_by(:translated_names, 'França')
105
65
  list = ISO3166::Country.find_all_countries_by_region('Americas')
106
- c = ISO3166::Country.find_country_by_alpha3('can')
66
+ c = ISO3166::Country.find_country_by_alpha2("FR")
107
67
  ```
108
68
 
109
69
  For a list of available attributes please see `ISO3166::DEFAULT_COUNTRY_HASH`.
110
70
  Note: searches are *case insensitive and ignore accents*.
111
71
 
112
- _Please note that `find_by_name`, `find_by_names`, `find_*_by_name` and `find_*_by_names` methods were removed in 5.0. See [Upgrading to 4.2 and 5.x](#upgrading-to-4-2-and-5-x) above for the new methods_
72
+ _Please note that `find_by_name`, `find_by_names`, `find_*_by_name` and `find_*_by_names` methods were removed in 5.0. See [UPGRADE.md](../blob/master/UPGRADE.md) for more information_
113
73
 
114
74
  ## Country Info
115
75
 
@@ -139,10 +99,11 @@ c.local_name # => "België"
139
99
  c.translation('de') # => 'Vereinigte Staaten von Amerika'
140
100
  c.translations['fr'] # => "États-Unis"
141
101
 
102
+ # Get all translations for a locale, defaults to 'en'
142
103
  ISO3166::Country.translations # {"DE"=>"Germany",...}
143
- ISO3166::Country.translations('DE') # {"DE"=>"Deutschland",...}
104
+ ISO3166::Country.translations('de') # {"DE"=>"Deutschland",...}
144
105
  ISO3166::Country.all_translated # ['Germany', ...]
145
- ISO3166::Country.all_translated('DE') # ['Deutschland', ...]
106
+ ISO3166::Country.all_translated('de') # ['Deutschland', ...]
146
107
 
147
108
  # Nationality
148
109
  c.nationality # => "American"
@@ -152,8 +113,14 @@ c.nationality # => "American"
152
113
 
153
114
  ```ruby
154
115
  c.subdivisions # => {"CO" => {"name" => "Colorado", "names" => "Colorado"}, ... }
116
+ c.subdivision_types # => ["state", "outlying_area", "district"]
117
+ c.subdivisions_of_types(['state']) # => {"CO" => {"name" => "Colorado", "names" => "Colorado"}, ... }
118
+ c.humanized_subdivision_types # => ["State", "Outlying area", "District"]
119
+
120
+ # This is now deprecated. #states is an alias of #subdivisions and returns all subdivisions regardless of type
155
121
  c.states # => {"CO" => {"name" => "Colorado", "names" => "Colorado"}, ... }
156
122
 
123
+
157
124
  # Get specific translations for the country subdivisions
158
125
  c.subdivision_names_with_codes('es') #=> [ ..., ["Nuevo Hampshire", "NH"], ["Nueva Jersey", "NJ"], ... ]
159
126
  ```
@@ -218,13 +185,19 @@ c.in_eu? # => false
218
185
  c.in_eea? # => false
219
186
  ```
220
187
 
221
-
222
188
  ### European Single Market Membership
223
189
 
224
190
  ```ruby
225
191
  c.in_esm? # => false
226
192
  ```
227
193
 
194
+ ## Country Code in Emoji
195
+
196
+ ```ruby
197
+ c = Country['MY']
198
+ c.emoji_flag # => "🇲🇾"
199
+ ```
200
+
228
201
  ### Plucking multiple attributes
229
202
 
230
203
  ```ruby
@@ -262,6 +235,30 @@ A template for formatting addresses is available through the address_format meth
262
235
  c.address_format # => "{{recipient}}\n{{street}}\n{{city}} {{region}} {{postalcode}}\n{{country}}"
263
236
  ```
264
237
 
238
+ ## Selective Loading of Locales
239
+
240
+ As of 2.0 you can selectively load locales to reduce memory usage in production.
241
+
242
+ By default we load `I18n.available_locales` if I18n is present, otherwise only `[:en]`. This means almost any Rails environment will only bring in its supported translations.
243
+
244
+ You can add all the locales like this.
245
+
246
+ ```ruby
247
+ ISO3166.configure do |config|
248
+ config.locales = [:af, :am, :ar, :as, :az, :be, :bg, :bn, :br, :bs, :ca, :cs, :cy, :da, :de, :dz, :el, :en, :eo, :es, :et, :eu, :fa, :fi, :fo, :fr, :ga, :gl, :gu, :he, :hi, :hr, :hu, :hy, :ia, :id, :is, :it, :ja, :ka, :kk, :km, :kn, :ko, :ku, :lt, :lv, :mi, :mk, :ml, :mn, :mr, :ms, :mt, :nb, :ne, :nl, :nn, :oc, :or, :pa, :pl, :ps, :pt, :ro, :ru, :rw, :si, :sk, :sl, :so, :sq, :sr, :sv, :sw, :ta, :te, :th, :ti, :tk, :tl, :tr, :tt, :ug, :uk, :ve, :vi, :wa, :wo, :xh, :zh, :zu]
249
+ end
250
+ ```
251
+
252
+ or something a bit more simple
253
+ ```ruby
254
+ ISO3166.configure do |config|
255
+ config.locales = [:en, :de, :fr, :es]
256
+ end
257
+ ```
258
+
259
+ If you change the value of `ISO3166.configuration.locales` after initialization, you should call `ISO3166::Data.reset` to reset the data cache, or you may end up with inconsistently loaded locales.
260
+ As of 5.1.1, subdivision translations also respect this and will only load the selected locales.
261
+
265
262
  ## Loading Custom Data
266
263
 
267
264
  As of 2.0 countries supports loading custom countries / overriding data in its data set, though if you choose to do this please contribute back to the upstream repo!
@@ -327,32 +324,11 @@ def country
327
324
  end
328
325
  ```
329
326
 
330
- ## Country Code in Emoji
331
-
332
- ```ruby
333
- c = Country['MY']
334
- c.emoji_flag # => "🇲🇾"
335
- ```
336
-
337
327
  ## Note on Patches/Pull Requests
338
328
 
339
- ### Please do not submit pull requests on `cache/**/*`
340
-
341
- Any additions should be directed upstream to [pkg-isocodes](https://salsa.debian.org/iso-codes-team/iso-codes)
342
-
343
- Localized country name data is sourced from https://github.com/grosser/i18n_data (which is based on https://salsa.debian.org/iso-codes-team/iso-codes/). Issues regarding localized country names can be reported to https://github.com/grosser/i18n_data/issues or https://salsa.debian.org/iso-codes-team/iso-codes/issues
344
- If you need to correct an upstream translation please add it to the lib/countries/data/translations_corrections.yaml
345
-
346
- ```
347
- # Ex:
348
- #
349
- # locale:
350
- # alpha2: localized_name
351
- #
352
- ```
329
+ **Please do not submit pull requests on `cache/**/*`**. These files generated by a rake task when preparing new releases and are not meant to be manually updated.
353
330
 
354
- Any corrections can be applied in translations_corrections.yaml these will be injected during
355
- the next `rake update_cache`.
331
+ If you with to submit a PR to correct an translation, please edit the `lib/countries/data/translations/countries-<locale>.yaml` file. Changes to the locale YAML files will be injected during the next `rake update_cache`.
356
332
 
357
333
  * Fork the project.
358
334
  * Make your feature addition or bug fix.
@@ -361,12 +337,13 @@ the next `rake update_cache`.
361
337
  * Commit, do not mess with rakefile, version, or history.
362
338
  (if you want to have your own version, that is fine but
363
339
  bump version in a commit by itself I can ignore when I pull)
364
- * Send me a pull request. Bonus points for topic branches.
340
+ * Make sure your you haven't made changes to `cache/**/*`
341
+ * Submit a pull request. Bonus points for topic branches.
365
342
 
366
343
  ## Copyright
367
344
 
368
- Copyright (c) 2012-2015 hexorx
369
- Copyright (c) 2015-2021 hexorx, rposborne
345
+ Copyright (c) 2012-2015 hexorx \
346
+ Copyright (c) 2015-2021 hexorx, rposborne \
370
347
  Copyright (c) 2022 hexorx, rposborne, pmor
371
348
 
372
349
  See LICENSE for details.
data/Rakefile CHANGED
@@ -30,30 +30,12 @@ end
30
30
 
31
31
  desc 'Update Cache'
32
32
  task :update_cache do
33
- require 'yaml'
34
- require 'i18n_data'
35
-
36
33
  codes = Dir['lib/countries/data/countries/*.yaml'].map { |x| File.basename(x, File.extname(x)) }.uniq.sort
37
34
  data = {}
38
35
 
39
- corrections_file = File.join(File.dirname(__FILE__), 'lib', 'countries', 'data', 'translation_corrections.yaml')
40
- corrections = YAML.load_file(corrections_file) || {}
41
-
42
- language_keys = I18nData.languages.keys + %w[zh_CN zh_TW zh_HK bn_IN pt_BR]
43
- # Ignore locales that have bad data in i18n_data 0.16.0
44
- language_keys -= %w[AY AM BA]
45
- language_keys.each do |locale|
46
- locale = locale.downcase
47
- begin
48
- local_names = I18nData.countries(locale)
49
- rescue I18nData::NoTranslationAvailable
50
- next
51
- end
52
-
53
- # Apply any known corrections to i18n_data
54
- corrections[locale]&.each do |alpha2, localized_name|
55
- local_names[alpha2] = localized_name
56
- end
36
+ Dir['lib/countries/data/translations/countries-*.yaml'].each do |locale_file|
37
+ locale = locale_file.split('-').last.split('.').first.downcase
38
+ local_names = YAML.load_file(locale_file)
57
39
 
58
40
  out = File.join(File.dirname(__FILE__), 'lib', 'countries', 'cache', 'locales', "#{locale.gsub(/_/, '-')}.json")
59
41
  File.binwrite(out, local_names.to_json)
@@ -67,3 +49,15 @@ task :update_cache do
67
49
  out_file = File.join(File.dirname(__FILE__), 'lib', 'countries', 'cache', 'countries.json')
68
50
  File.binwrite(out_file, data.to_json)
69
51
  end
52
+
53
+ desc 'Sort subdivision YAML by code and translations by locale'
54
+ task :cleanup_subdivision_yaml do
55
+ ISO3166::Country.codes.each do |c_code|
56
+ sd = Sources::Local::Subdivision.new(c_code)
57
+ data = sd.load
58
+ next if data.nil? || data == {}
59
+ data = data.sort.to_h
60
+ data['translations'] = data['translations'].sort.to_h unless data['translations'].nil?
61
+ sd.save(data)
62
+ end
63
+ end
data/UPGRADE.md ADDED
@@ -0,0 +1,39 @@
1
+ # Upgrading to 4.2 and 5.x
2
+
3
+ In release 4.2 the `#name` attribute was deprecated in favour of `#iso_short_name` and we added the `#iso_long_name` attribute, to make it clear that these attributes use the ISO3166 names, and are not the "common names" most people might expect, eg: The ISO name for "United Kingdom" is "United Kingdom of Great Britain and Northern Ireland", but if you're building a dropdown box to select a country, you're likely expecting to see "United Kingdom" instead.
4
+
5
+ "Common names" in English have been available in the translation data, via `#translation('en')`. As of release 4.2, a shortcut method has been added for simplicity, `#common_name`, which delegates to `#translation('en')`.
6
+
7
+ For additional clarity, the `#names` method, which was an alias to `#unofficial_names` has also been deprecated, together with the finder methods that use `name` or `names` attributes.
8
+
9
+ The `#name` and `#names` attributes, and corresponding finder methods were removed in 5.0.
10
+
11
+ The replacement finders added in 5.0 are:
12
+
13
+ - `#find_by_name` => `#find_by_any_name` - Searches all the name attributes, same as before
14
+ - `#find_by_names` => `#find_by_unofficial_names`
15
+ - `#find_*_by_name` => `#find_*_by_any_name`
16
+ - `#find_*_by_names` => `#find_*_by_unofficial_names`
17
+
18
+ With the addition of the new name attributes, there are now also the following finders:
19
+
20
+ - `#find_by_common_name`/`#find_*_by_common_name`
21
+ - `#find_by_iso_short_name`/`#find_*_by_iso_short_name`
22
+ - `#find_by_iso_long_name`/`#find_*_by_iso_long_name`
23
+
24
+ For translated country names, we use data originally sourced from [pkg-isocodes](https://salsa.debian.org/iso-codes-team/iso-codes), via the [i18n_data](https://github.com/grosser/i18n_data) gem, and these generally correspond to the expected "common names". Some corrections have been applied to these localized names. The methods to access translated names have not been changed.
25
+
26
+ The 5.0 release removed support for Ruby 2.5 (EOL 2021-03-01) and 2.6 (EOL 2022-03-31)
27
+
28
+ # Upgrading to 5.1
29
+
30
+ In release 5.1 a `type` attribute was added to the subdivisions object, to allow filtering the collection of subdivisions.
31
+
32
+ - `Country#subdivision_types` returns a list of subdivision types for that country (lowercase, snake_cased)
33
+ - `#subdivisions_of_types(types)` accepts an array of subdivision types and returns the subdivisions for those types
34
+
35
+ The `#states` method is deprecated to avoid confusion, as this method is an alias to `#subdivisions` and returns all subdivisions, regardless of type.
36
+
37
+ To get a list of `state` subdivisions (something that was not possible before 5.1), use `subdivisions_of_types(['state'])`
38
+
39
+ Please note that the subdivision types are obtained from ISO data, and each country defines its own subdivision types, eg: `state`, `district`, `region`, `municipality` and many others types exist.
data/countries.gemspec CHANGED
@@ -23,7 +23,6 @@ Gem::Specification.new do |gem|
23
23
 
24
24
  gem.required_ruby_version = '>= 2.7'
25
25
 
26
- gem.add_dependency('i18n_data', '~> 0.16.0')
27
26
  gem.add_dependency('sixarm_ruby_unaccent', '~> 1.1')
28
27
  gem.add_development_dependency('activesupport', '>= 3')
29
28
  gem.add_development_dependency('nokogiri', '>= 1.8')