countries 4.2.1 → 5.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (186) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/codeql-analysis.yml +70 -0
  3. data/.github/workflows/tests.yml +1 -5
  4. data/.rubocop.yml +40 -1
  5. data/.rubocop_todo.yml +8 -41
  6. data/CHANGELOG.md +33 -5
  7. data/Gemfile +5 -3
  8. data/LICENSE +3 -1
  9. data/README.markdown +34 -18
  10. data/Rakefile +15 -31
  11. data/bin/console +1 -0
  12. data/countries.gemspec +12 -10
  13. data/lib/countries/cache/countries.json +1 -1
  14. data/lib/countries/cache/locales/oc.json +1 -1
  15. data/lib/countries/cache/locales/ti.json +1 -1
  16. data/lib/countries/cache/locales/zu.json +1 -1
  17. data/lib/countries/configuration.rb +2 -0
  18. data/lib/countries/country/class_methods.rb +12 -97
  19. data/lib/countries/country/currency_methods.rb +2 -0
  20. data/lib/countries/country/emoji.rb +2 -3
  21. data/lib/countries/country/finder_methods.rb +81 -0
  22. data/lib/countries/country.rb +3 -40
  23. data/lib/countries/data/countries/AE.yaml +1 -1
  24. data/lib/countries/data/countries/KN.yaml +0 -1
  25. data/lib/countries/data/subdivisions/AD.yaml +21 -21
  26. data/lib/countries/data/subdivisions/AF.yaml +2 -2
  27. data/lib/countries/data/subdivisions/AG.yaml +1 -1
  28. data/lib/countries/data/subdivisions/AI.yaml +98 -98
  29. data/lib/countries/data/subdivisions/AL.yaml +82 -626
  30. data/lib/countries/data/subdivisions/AZ.yaml +5 -5
  31. data/lib/countries/data/subdivisions/BA.yaml +11 -11
  32. data/lib/countries/data/subdivisions/BD.yaml +8 -8
  33. data/lib/countries/data/subdivisions/BE.yaml +2 -2
  34. data/lib/countries/data/subdivisions/BF.yaml +13 -13
  35. data/lib/countries/data/subdivisions/BI.yaml +3 -3
  36. data/lib/countries/data/subdivisions/BM.yaml +77 -77
  37. data/lib/countries/data/subdivisions/BS.yaml +22 -22
  38. data/lib/countries/data/subdivisions/BW.yaml +7 -7
  39. data/lib/countries/data/subdivisions/BY.yaml +1 -1
  40. data/lib/countries/data/subdivisions/CD.yaml +19 -19
  41. data/lib/countries/data/subdivisions/CG.yaml +1 -1
  42. data/lib/countries/data/subdivisions/CI.yaml +14 -14
  43. data/lib/countries/data/subdivisions/CK.yaml +77 -77
  44. data/lib/countries/data/subdivisions/CN.yaml +0 -107
  45. data/lib/countries/data/subdivisions/CV.yaml +9 -9
  46. data/lib/countries/data/subdivisions/DK.yaml +1 -0
  47. data/lib/countries/data/subdivisions/DO.yaml +11 -11
  48. data/lib/countries/data/subdivisions/EE.yaml +78 -2
  49. data/lib/countries/data/subdivisions/EH.yaml +12 -12
  50. data/lib/countries/data/subdivisions/ES.yaml +17 -17
  51. data/lib/countries/data/subdivisions/FI.yaml +16 -16
  52. data/lib/countries/data/subdivisions/FJ.yaml +14 -14
  53. data/lib/countries/data/subdivisions/GB.yaml +21 -20
  54. data/lib/countries/data/subdivisions/GH.yaml +7 -7
  55. data/lib/countries/data/subdivisions/GL.yaml +6 -6
  56. data/lib/countries/data/subdivisions/GN.yaml +7 -7
  57. data/lib/countries/data/subdivisions/GQ.yaml +1 -0
  58. data/lib/countries/data/subdivisions/GR.yaml +1 -1
  59. data/lib/countries/data/subdivisions/GW.yaml +3 -3
  60. data/lib/countries/data/subdivisions/HT.yaml +1 -1
  61. data/lib/countries/data/subdivisions/ID.yaml +41 -41
  62. data/lib/countries/data/subdivisions/IE.yaml +1 -2
  63. data/lib/countries/data/subdivisions/IN.yaml +4 -3
  64. data/lib/countries/data/subdivisions/IQ.yaml +1 -1
  65. data/lib/countries/data/subdivisions/IR.yaml +2 -1
  66. data/lib/countries/data/subdivisions/IS.yaml +72 -0
  67. data/lib/countries/data/subdivisions/IT.yaml +7 -8
  68. data/lib/countries/data/subdivisions/KG.yaml +1 -1
  69. data/lib/countries/data/subdivisions/KH.yaml +1 -1
  70. data/lib/countries/data/subdivisions/KN.yaml +2 -2
  71. data/lib/countries/data/subdivisions/KP.yaml +12 -12
  72. data/lib/countries/data/subdivisions/KR.yaml +1 -1
  73. data/lib/countries/data/subdivisions/KZ.yaml +1 -1
  74. data/lib/countries/data/subdivisions/LA.yaml +1 -1
  75. data/lib/countries/data/subdivisions/LB.yaml +2 -2
  76. data/lib/countries/data/subdivisions/LC.yaml +10 -10
  77. data/lib/countries/data/subdivisions/LK.yaml +9 -9
  78. data/lib/countries/data/subdivisions/LR.yaml +2 -2
  79. data/lib/countries/data/subdivisions/LT.yaml +60 -60
  80. data/lib/countries/data/subdivisions/LU.yaml +1 -1
  81. data/lib/countries/data/subdivisions/LV.yaml +1 -1
  82. data/lib/countries/data/subdivisions/MA.yaml +35 -35
  83. data/lib/countries/data/subdivisions/MC.yaml +17 -17
  84. data/lib/countries/data/subdivisions/MD.yaml +740 -740
  85. data/lib/countries/data/subdivisions/ME.yaml +3 -3
  86. data/lib/countries/data/subdivisions/MH.yaml +2 -2
  87. data/lib/countries/data/subdivisions/ML.yaml +2 -2
  88. data/lib/countries/data/subdivisions/MM.yaml +1 -1
  89. data/lib/countries/data/subdivisions/MR.yaml +3 -3
  90. data/lib/countries/data/subdivisions/MV.yaml +8 -8
  91. data/lib/countries/data/subdivisions/MW.yaml +4 -4
  92. data/lib/countries/data/subdivisions/MX.yaml +1 -1
  93. data/lib/countries/data/subdivisions/NL.yaml +6 -6
  94. data/lib/countries/data/subdivisions/NO.yaml +1 -0
  95. data/lib/countries/data/subdivisions/NP.yaml +12 -12
  96. data/lib/countries/data/subdivisions/NZ.yaml +1 -1
  97. data/lib/countries/data/subdivisions/OM.yaml +6 -6
  98. data/lib/countries/data/subdivisions/PG.yaml +3 -3
  99. data/lib/countries/data/subdivisions/PH.yaml +16 -16
  100. data/lib/countries/data/subdivisions/PK.yaml +2 -2
  101. data/lib/countries/data/subdivisions/PS.yaml +16 -16
  102. data/lib/countries/data/subdivisions/QA.yaml +2 -2
  103. data/lib/countries/data/subdivisions/RS.yaml +2 -2
  104. data/lib/countries/data/subdivisions/SC.yaml +4 -2
  105. data/lib/countries/data/subdivisions/SH.yaml +1 -1
  106. data/lib/countries/data/subdivisions/SI.yaml +19 -19
  107. data/lib/countries/data/subdivisions/SJ.yaml +14 -14
  108. data/lib/countries/data/subdivisions/SL.yaml +1 -1
  109. data/lib/countries/data/subdivisions/SN.yaml +3 -3
  110. data/lib/countries/data/subdivisions/SS.yaml +10 -10
  111. data/lib/countries/data/subdivisions/ST.yaml +6 -0
  112. data/lib/countries/data/subdivisions/TD.yaml +6 -6
  113. data/lib/countries/data/subdivisions/TH.yaml +1 -1
  114. data/lib/countries/data/subdivisions/TJ.yaml +2 -2
  115. data/lib/countries/data/subdivisions/TK.yaml +21 -21
  116. data/lib/countries/data/subdivisions/TM.yaml +1 -1
  117. data/lib/countries/data/subdivisions/TT.yaml +2 -2
  118. data/lib/countries/data/subdivisions/TV.yaml +1 -1
  119. data/lib/countries/data/subdivisions/TW.yaml +3 -17
  120. data/lib/countries/data/subdivisions/TZ.yaml +5 -5
  121. data/lib/countries/data/subdivisions/UG.yaml +59 -52
  122. data/lib/countries/data/subdivisions/UM.yaml +0 -10
  123. data/lib/countries/data/subdivisions/WF.yaml +3 -13
  124. data/lib/countries/data/subdivisions/YE.yaml +3 -3
  125. data/lib/countries/data/subdivisions/ZA.yaml +2 -2
  126. data/lib/countries/data/subdivisions/ZM.yaml +1 -1
  127. data/lib/countries/data.rb +34 -37
  128. data/lib/countries/global.rb +2 -0
  129. data/lib/countries/iso3166.rb +3 -0
  130. data/lib/countries/kwarg_struct.rb +2 -0
  131. data/lib/countries/mongoid.rb +2 -0
  132. data/lib/countries/sources/cldr/downloader.rb +8 -8
  133. data/lib/countries/sources/cldr/subdivision.rb +3 -0
  134. data/lib/countries/sources/cldr/subdivision_updater.rb +23 -17
  135. data/lib/countries/sources/local/cached_loader.rb +3 -0
  136. data/lib/countries/sources/local/subdivision.rb +5 -2
  137. data/lib/countries/sources.rb +2 -0
  138. data/lib/countries/structure.rb +1 -1
  139. data/lib/countries/subdivision.rb +2 -0
  140. data/lib/countries/tasks/geocoding.rake +15 -6
  141. data/lib/countries/tasks/postal_codes.rake +5 -3
  142. data/lib/countries/timezones.rb +5 -2
  143. data/lib/countries/translations.rb +2 -0
  144. data/lib/countries/version.rb +3 -1
  145. data/lib/countries.rb +2 -0
  146. data/spec/00_global_spec.rb +2 -0
  147. data/spec/configuration_spec.rb +11 -5
  148. data/spec/country_spec.rb +71 -22
  149. data/spec/data_spec.rb +24 -18
  150. data/spec/mongoid_spec.rb +2 -2
  151. data/spec/perf_spec.rb +16 -16
  152. data/spec/spec_helper.rb +2 -0
  153. data/spec/subdivision_spec.rb +6 -4
  154. data/spec/thread_safety_spec.rb +4 -3
  155. data/spec/timezone_spec.rb +2 -0
  156. metadata +18 -45
  157. data/lib/countries/data/subdivisions/AS.yaml +0 -85
  158. data/lib/countries/data/subdivisions/AW.yaml +0 -9
  159. data/lib/countries/data/subdivisions/AX.yaml +0 -51
  160. data/lib/countries/data/subdivisions/BL.yaml +0 -11
  161. data/lib/countries/data/subdivisions/CP.yaml +0 -4
  162. data/lib/countries/data/subdivisions/CW.yaml +0 -9
  163. data/lib/countries/data/subdivisions/GF.yaml +0 -11
  164. data/lib/countries/data/subdivisions/GG.yaml +0 -155
  165. data/lib/countries/data/subdivisions/GP.yaml +0 -11
  166. data/lib/countries/data/subdivisions/GU.yaml +0 -275
  167. data/lib/countries/data/subdivisions/HK.yaml +0 -267
  168. data/lib/countries/data/subdivisions/IC.yaml +0 -4
  169. data/lib/countries/data/subdivisions/IM.yaml +0 -337
  170. data/lib/countries/data/subdivisions/JE.yaml +0 -169
  171. data/lib/countries/data/subdivisions/MF.yaml +0 -9
  172. data/lib/countries/data/subdivisions/MO.yaml +0 -9
  173. data/lib/countries/data/subdivisions/MP.yaml +0 -71
  174. data/lib/countries/data/subdivisions/MQ.yaml +0 -11
  175. data/lib/countries/data/subdivisions/MS.yaml +0 -43
  176. data/lib/countries/data/subdivisions/NC.yaml +0 -57
  177. data/lib/countries/data/subdivisions/PF.yaml +0 -81
  178. data/lib/countries/data/subdivisions/PM.yaml +0 -39
  179. data/lib/countries/data/subdivisions/PR.yaml +0 -1107
  180. data/lib/countries/data/subdivisions/RE.yaml +0 -11
  181. data/lib/countries/data/subdivisions/SX.yaml +0 -9
  182. data/lib/countries/data/subdivisions/TA.yaml +0 -4
  183. data/lib/countries/data/subdivisions/TF.yaml +0 -67
  184. data/lib/countries/data/subdivisions/VI.yaml +0 -57
  185. data/lib/countries/data/subdivisions/YT.yaml +0 -247
  186. data/lib/countries/setup.rb +0 -18
@@ -1,11 +0,0 @@
1
- ---
2
- '':
3
- name:
4
- code:
5
- unofficial_names:
6
- geo:
7
- latitude: 51.511933
8
- longitude: -0.137539
9
- translations:
10
- en: Réunion
11
- comments:
@@ -1,9 +0,0 @@
1
- ---
2
- '':
3
- name:
4
- code:
5
- unofficial_names:
6
- geo:
7
- translations:
8
- en: Sint Maarten
9
- comments:
@@ -1,4 +0,0 @@
1
- ---
2
- '':
3
- translations:
4
- en: Tristan da Cunha
@@ -1,67 +0,0 @@
1
- ---
2
- X1~:
3
- name: Ile Saint-Paul et Ile Amsterdam
4
- code:
5
- unofficial_names: Ile Saint-Paul et Ile Amsterdam
6
- geo:
7
- latitude: -38.7201976
8
- longitude: 77.5189458
9
- min_latitude: -38.7395664
10
- min_longitude: 77.5017415
11
- max_latitude: -38.7012284
12
- max_longitude: 77.5487845
13
- translations:
14
- en: Ile Saint-Paul et Ile Amsterdam
15
- comments:
16
- X2~:
17
- name: Crozet Islands
18
- code:
19
- unofficial_names: Crozet Islands
20
- geo:
21
- latitude: -46.4166667
22
- longitude: 51
23
- min_latitude:
24
- min_longitude:
25
- max_latitude:
26
- max_longitude:
27
- translations:
28
- en: Crozet Islands
29
- comments:
30
- X3~:
31
- name: Kerguelen
32
- code:
33
- unofficial_names: Kerguelen
34
- geo:
35
- latitude: -49.3948275
36
- longitude: 69.35446259999999
37
- min_latitude: -49.7395692
38
- min_longitude: 68.71810909999999
39
- max_latitude: -48.6605822
40
- max_longitude: 70.57617189999999
41
- translations:
42
- en: Kerguelen
43
- comments:
44
- X4~:
45
- name: Iles Eparses
46
- code:
47
- unofficial_names: Iles Eparses
48
- geo:
49
- latitude:
50
- longitude:
51
- min_latitude:
52
- min_longitude:
53
- max_latitude:
54
- max_longitude:
55
- translations:
56
- en: Iles Eparses
57
- comments:
58
- '':
59
- name:
60
- code:
61
- unofficial_names:
62
- geo:
63
- latitude: 45.876543
64
- longitude: 3.116384
65
- translations:
66
- en: French Southern Territories
67
- comments:
@@ -1,57 +0,0 @@
1
- ---
2
- C:
3
- name: Saint Croix
4
- code:
5
- unofficial_names: Saint Croix
6
- geo:
7
- latitude: 17.73563
8
- longitude: -64.74795
9
- min_latitude:
10
- min_longitude:
11
- max_latitude:
12
- max_longitude:
13
- translations:
14
- en: Saint Croix
15
- comments:
16
- J:
17
- name: Saint John
18
- code:
19
- unofficial_names: Saint John
20
- geo:
21
- latitude: 18.32758
22
- longitude: -64.73771
23
- min_latitude:
24
- min_longitude:
25
- max_latitude:
26
- max_longitude:
27
- translations:
28
- en: Saint John
29
- comments:
30
- T:
31
- name: Saint Thomas
32
- code:
33
- unofficial_names: Saint Thomas
34
- geo:
35
- latitude: 18.34537
36
- longitude: -64.92755
37
- min_latitude:
38
- min_longitude:
39
- max_latitude:
40
- max_longitude:
41
- translations:
42
- en: Saint Thomas
43
- comments:
44
- '':
45
- name:
46
- code:
47
- unofficial_names:
48
- geo:
49
- latitude: 18.335765
50
- longitude: -64.896335
51
- min_latitude: 17.5482999
52
- min_longitude: -65.1101
53
- max_latitude: 18.4239
54
- max_longitude: -64.4391
55
- translations:
56
- en: U.S. Virgin Islands
57
- comments:
@@ -1,247 +0,0 @@
1
- ---
2
- '1':
3
- name: Acoua
4
- code:
5
- unofficial_names: Acoua
6
- geo:
7
- latitude: -12.72215
8
- longitude: 45.05811
9
- min_latitude:
10
- min_longitude:
11
- max_latitude:
12
- max_longitude:
13
- translations:
14
- en: Acoua
15
- comments:
16
- '2':
17
- name: Bandraboua
18
- code:
19
- unofficial_names: Bandraboua
20
- geo:
21
- latitude: -12.70222
22
- longitude: 45.12197
23
- min_latitude:
24
- min_longitude:
25
- max_latitude:
26
- max_longitude:
27
- translations:
28
- en: Bandraboua
29
- comments:
30
- '3':
31
- name: Bandrele
32
- code:
33
- unofficial_names: Bandrele
34
- geo:
35
- latitude: -12.91113
36
- longitude: 45.19389
37
- min_latitude:
38
- min_longitude:
39
- max_latitude:
40
- max_longitude:
41
- translations:
42
- en: Bandrele
43
- comments:
44
- '4':
45
- name: Boueni
46
- code:
47
- unofficial_names: Boueni
48
- geo:
49
- latitude: -12.9092
50
- longitude: 45.07999
51
- min_latitude:
52
- min_longitude:
53
- max_latitude:
54
- max_longitude:
55
- translations:
56
- en: Boueni
57
- comments:
58
- '5':
59
- name: Chiconi
60
- code:
61
- unofficial_names: Chiconi
62
- geo:
63
- latitude: -12.83072
64
- longitude: 45.11407
65
- min_latitude:
66
- min_longitude:
67
- max_latitude:
68
- max_longitude:
69
- translations:
70
- en: Chiconi
71
- comments:
72
- '6':
73
- name: Chirongui
74
- code:
75
- unofficial_names: Chirongui
76
- geo:
77
- latitude: -12.93497
78
- longitude: 45.15106
79
- min_latitude:
80
- min_longitude:
81
- max_latitude:
82
- max_longitude:
83
- translations:
84
- en: Chirongui
85
- comments:
86
- '7':
87
- name: Dembeni
88
- code:
89
- unofficial_names: Dembeni
90
- geo:
91
- latitude: -12.84302
92
- longitude: 45.18548
93
- min_latitude:
94
- min_longitude:
95
- max_latitude:
96
- max_longitude:
97
- translations:
98
- en: Dembeni
99
- comments:
100
- '8':
101
- name: Dzaoudzi
102
- code:
103
- unofficial_names: Dzaoudzi
104
- geo:
105
- latitude: -12.77832
106
- longitude: 45.28367
107
- min_latitude:
108
- min_longitude:
109
- max_latitude:
110
- max_longitude:
111
- translations:
112
- en: Dzaoudzi
113
- comments:
114
- '9':
115
- name: Kani-Keli
116
- code:
117
- unofficial_names: Kani-Keli
118
- geo:
119
- latitude: -12.95471
120
- longitude: 45.106
121
- min_latitude:
122
- min_longitude:
123
- max_latitude:
124
- max_longitude:
125
- translations:
126
- en: Kani-Keli
127
- comments:
128
- '10':
129
- name: Koungou
130
- code:
131
- unofficial_names: Koungou
132
- geo:
133
- latitude: -12.73513
134
- longitude: 45.20591
135
- min_latitude:
136
- min_longitude:
137
- max_latitude:
138
- max_longitude:
139
- translations:
140
- en: Koungou
141
- comments:
142
- '11':
143
- name: Mamoudzou
144
- code:
145
- unofficial_names: Mamoudzou
146
- geo:
147
- latitude: -12.77966
148
- longitude: 45.22831
149
- min_latitude:
150
- min_longitude:
151
- max_latitude:
152
- max_longitude:
153
- translations:
154
- en: Mamoudzou
155
- comments:
156
- '12':
157
- name: Mtsamboro
158
- code:
159
- unofficial_names: Mtsamboro
160
- geo:
161
- latitude: -12.70013
162
- longitude: 45.06918
163
- min_latitude:
164
- min_longitude:
165
- max_latitude:
166
- max_longitude:
167
- translations:
168
- en: Mtsamboro
169
- comments:
170
- '13':
171
- name: M'Tsangamouji
172
- code:
173
- unofficial_names: M'Tsangamouji
174
- geo:
175
- latitude: -12.75982
176
- longitude: 45.08454
177
- min_latitude:
178
- min_longitude:
179
- max_latitude:
180
- max_longitude:
181
- translations:
182
- en: M'Tsangamouji
183
- comments:
184
- '14':
185
- name: Ouangani
186
- code:
187
- unofficial_names: Ouangani
188
- geo:
189
- latitude: -12.84728
190
- longitude: 45.1369
191
- min_latitude:
192
- min_longitude:
193
- max_latitude:
194
- max_longitude:
195
- translations:
196
- en: Ouangani
197
- comments:
198
- '15':
199
- name: Pamandzi
200
- code:
201
- unofficial_names: Pamandzi
202
- geo:
203
- latitude: -12.79489
204
- longitude: 45.28195
205
- min_latitude:
206
- min_longitude:
207
- max_latitude:
208
- max_longitude:
209
- translations:
210
- en: Pamandzi
211
- comments:
212
- '16':
213
- name: Sada
214
- code:
215
- unofficial_names: Sada
216
- geo:
217
- latitude: -12.85046
218
- longitude: 45.10291
219
- min_latitude:
220
- min_longitude:
221
- max_latitude:
222
- max_longitude:
223
- translations:
224
- en: Sada
225
- comments:
226
- '17':
227
- name: Tsingoni
228
- code:
229
- unofficial_names: Tsingoni
230
- geo:
231
- latitude: -12.78845
232
- longitude: 45.10463
233
- min_latitude:
234
- min_longitude:
235
- max_latitude:
236
- max_longitude:
237
- translations:
238
- en: Tsingoni
239
- comments:
240
- '':
241
- name:
242
- code:
243
- unofficial_names:
244
- geo:
245
- translations:
246
- en: Mayotte
247
- comments:
@@ -1,18 +0,0 @@
1
- module ISO3166
2
- ##
3
- # <b>DEPRECATED:</b> Please use <tt>Data</tt> instead.
4
- # TODO: Remove at version 2.1
5
- # Handles building the in memory store of countries data
6
- class Setup
7
- # <b>DEPRECATED:</b> Please use <tt>Data.codes</tt> instead.
8
- def codes
9
- warn '[DEPRECATION] `Setup.codes` is deprecated. Please use `Data.codes` instead.'
10
- Data.codes
11
- end
12
-
13
- def data
14
- warn "[DEPRECATION] `Setup.new.data` is deprecated without replacement
15
- data is now loaded per locale Data.new(:en).call"
16
- end
17
- end
18
- end