countries 6.0.0 → 7.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/countries/cache/countries.json +1 -1
- data/lib/countries/configuration.rb +6 -2
- data/lib/countries/country/class_methods.rb +1 -1
- data/lib/countries/country/conversion_methods.rb +17 -0
- data/lib/countries/country/country_subdivision_methods.rb +2 -14
- data/lib/countries/country/finder_methods.rb +2 -3
- data/lib/countries/country.rb +3 -2
- data/lib/countries/data/countries/AM.yaml +0 -1
- data/lib/countries/data/countries/AR.yaml +1 -0
- data/lib/countries/data/countries/BG.yaml +1 -0
- data/lib/countries/data/countries/CD.yaml +1 -0
- data/lib/countries/data/countries/CG.yaml +1 -0
- data/lib/countries/data/countries/CH.yaml +5 -3
- data/lib/countries/data/countries/EE.yaml +1 -1
- data/lib/countries/data/countries/ER.yaml +1 -1
- data/lib/countries/data/countries/ES.yaml +8 -0
- data/lib/countries/data/countries/FI.yaml +1 -1
- data/lib/countries/data/countries/FJ.yaml +0 -1
- data/lib/countries/data/countries/GB.yaml +1 -0
- data/lib/countries/data/countries/MM.yaml +1 -0
- data/lib/countries/data/countries/NL.yaml +1 -0
- data/lib/countries/data/countries/PY.yaml +1 -1
- data/lib/countries/data/countries/UZ.yaml +0 -1
- data/lib/countries/data/subdivisions/GB.yaml +1 -1
- data/lib/countries/data/subdivisions/GT.yaml +44 -44
- data/lib/countries/data.rb +2 -2
- data/lib/countries/iso3166.rb +1 -0
- data/lib/countries/sources/cldr/subdivision_updater.rb +1 -1
- data/lib/countries/sources.rb +5 -5
- data/lib/countries/translations.rb +1 -1
- data/lib/countries/version.rb +1 -1
- metadata +5 -4
@@ -19,13 +19,17 @@ module ISO3166
|
|
19
19
|
end
|
20
20
|
|
21
21
|
class Configuration
|
22
|
-
attr_accessor :
|
22
|
+
attr_accessor :loaded_locales
|
23
|
+
attr_writer :locales
|
23
24
|
|
24
25
|
def initialize
|
25
|
-
@locales = default_locales
|
26
26
|
@loaded_locales = []
|
27
27
|
end
|
28
28
|
|
29
|
+
def locales
|
30
|
+
@locales ||= default_locales
|
31
|
+
end
|
32
|
+
|
29
33
|
# Enables the integration with the {Money}[https://github.com/RubyMoney/money] gem
|
30
34
|
#
|
31
35
|
# Please note that it requires you to add "money" gem to your gemfile.
|
@@ -34,7 +34,7 @@ module ISO3166
|
|
34
34
|
|
35
35
|
def all_names_with_codes(locale = 'en')
|
36
36
|
Country.all.map do |c|
|
37
|
-
lc =
|
37
|
+
lc = c.translation(locale) || c.iso_short_name
|
38
38
|
[lc.respond_to?('html_safe') ? lc.html_safe : lc, c.alpha2]
|
39
39
|
end.sort
|
40
40
|
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module ISO3166
|
4
|
+
module ConversionMethods
|
5
|
+
# @param alpha2 [String] ISO 3166 alpha-2 country code.
|
6
|
+
# @return [String] ISO 3166 alpha-3 country code.
|
7
|
+
def from_alpha2_to_alpha3(alpha2)
|
8
|
+
find_country_by_alpha2(alpha2)&.alpha3
|
9
|
+
end
|
10
|
+
|
11
|
+
# @param alpha3 [String] ISO 3166 alpha-3 country code.
|
12
|
+
# @return [String] ISO 3166 alpha-2 country code.
|
13
|
+
def from_alpha3_to_alpha2(alpha3)
|
14
|
+
find_country_by_alpha3(alpha3)&.alpha2
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -11,8 +11,8 @@ module ISO3166
|
|
11
11
|
end
|
12
12
|
|
13
13
|
def subdivision_for_string?(subdivision_str)
|
14
|
-
|
15
|
-
|
14
|
+
subdivisions.transform_values(&:translations)
|
15
|
+
.any? { |k, v| subdivision_str == k || v.values.include?(subdivision_str) }
|
16
16
|
end
|
17
17
|
|
18
18
|
# +true+ if this Country has any Subdivisions.
|
@@ -61,18 +61,6 @@ module ISO3166
|
|
61
61
|
subdivisions.map { |_k, v| v.translations[locale] || v.name }
|
62
62
|
end
|
63
63
|
|
64
|
-
def states
|
65
|
-
if RUBY_VERSION =~ /^3\.\d\.\d/
|
66
|
-
warn 'DEPRECATION WARNING: The Country#states method has been deprecated and will be removed in 6.0. Please use Country#subdivisions instead.',
|
67
|
-
uplevel: 1, category: :deprecated
|
68
|
-
else
|
69
|
-
warn 'DEPRECATION WARNING: The Country#states method has been deprecated and will be removed in 6.0. Please use Country#subdivisions instead.',
|
70
|
-
uplevel: 1
|
71
|
-
end
|
72
|
-
|
73
|
-
subdivisions
|
74
|
-
end
|
75
|
-
|
76
64
|
private
|
77
65
|
|
78
66
|
def humanize_string(str)
|
@@ -29,8 +29,8 @@ module ISO3166
|
|
29
29
|
|
30
30
|
def method_missing(method_name, *arguments)
|
31
31
|
matches = method_name.to_s.match(FIND_BY_REGEX)
|
32
|
-
return_all = matches[1]
|
33
32
|
super unless matches
|
33
|
+
return_all = matches[1]
|
34
34
|
|
35
35
|
countries = find_by(matches[3], arguments[0], matches[2])
|
36
36
|
return_all ? countries : countries.last
|
@@ -72,8 +72,7 @@ module ISO3166
|
|
72
72
|
end
|
73
73
|
|
74
74
|
def searchable_attributes
|
75
|
-
|
76
|
-
instance_methods - UNSEARCHABLE_METHODS + %i[name names any_name]
|
75
|
+
instance_methods - UNSEARCHABLE_METHODS + %i[any_name]
|
77
76
|
end
|
78
77
|
end
|
79
78
|
end
|
data/lib/countries/country.rb
CHANGED
@@ -3,18 +3,19 @@
|
|
3
3
|
module ISO3166
|
4
4
|
class Country
|
5
5
|
extend CountryClassMethods
|
6
|
+
extend ConversionMethods
|
6
7
|
extend CountryFinderMethods
|
7
8
|
include Emoji
|
8
9
|
include CountrySubdivisionMethods
|
9
10
|
attr_reader :data
|
10
11
|
|
11
|
-
ISO3166::DEFAULT_COUNTRY_HASH.
|
12
|
+
ISO3166::DEFAULT_COUNTRY_HASH.each_key do |method_name|
|
12
13
|
define_method method_name do
|
13
14
|
data[method_name.to_s]
|
14
15
|
end
|
15
16
|
end
|
16
17
|
|
17
|
-
ISO3166::DEFAULT_COUNTRY_HASH['geo'].
|
18
|
+
ISO3166::DEFAULT_COUNTRY_HASH['geo'].each_key do |method_name|
|
18
19
|
define_method method_name do
|
19
20
|
data['geo'][method_name.to_s]
|
20
21
|
end
|
@@ -35,10 +35,12 @@ CH:
|
|
35
35
|
- de
|
36
36
|
- fr
|
37
37
|
- it
|
38
|
+
- rm
|
38
39
|
languages_spoken:
|
39
40
|
- de
|
40
41
|
- fr
|
41
42
|
- it
|
43
|
+
- rm
|
42
44
|
national_destination_code_lengths:
|
43
45
|
- 2
|
44
46
|
national_number_lengths:
|
@@ -61,10 +63,10 @@ CH:
|
|
61
63
|
- スイス
|
62
64
|
- Zwitserland
|
63
65
|
vat_rates:
|
64
|
-
standard:
|
66
|
+
standard: 8.1
|
65
67
|
reduced:
|
66
|
-
- 2.
|
67
|
-
- 3.
|
68
|
+
- 2.6
|
69
|
+
- 3.8
|
68
70
|
super_reduced:
|
69
71
|
parking:
|
70
72
|
world_region: EMEA
|
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
2
|
+
'16':
|
3
3
|
name: Alta Verapaz
|
4
|
-
code:
|
4
|
+
code: '16'
|
5
5
|
unofficial_names: Alta Verapaz
|
6
6
|
geo:
|
7
7
|
latitude: 15.5942883
|
@@ -61,9 +61,9 @@ AV:
|
|
61
61
|
'no': Alta Verapaz
|
62
62
|
comments:
|
63
63
|
type: department
|
64
|
-
|
64
|
+
'15':
|
65
65
|
name: Baja Verapaz
|
66
|
-
code:
|
66
|
+
code: '15'
|
67
67
|
unofficial_names: Baja Verapaz
|
68
68
|
geo:
|
69
69
|
latitude: 15.0787498
|
@@ -122,9 +122,9 @@ BV:
|
|
122
122
|
'no': Baja Verapaz
|
123
123
|
comments:
|
124
124
|
type: department
|
125
|
-
|
125
|
+
'04':
|
126
126
|
name: Chimaltenango
|
127
|
-
code:
|
127
|
+
code: '04'
|
128
128
|
unofficial_names: Chimaltenango
|
129
129
|
geo:
|
130
130
|
latitude: 14.662222
|
@@ -183,9 +183,9 @@ CM:
|
|
183
183
|
'no': Chimaltenango
|
184
184
|
comments:
|
185
185
|
type: department
|
186
|
-
|
186
|
+
'20':
|
187
187
|
name: Chiquimula
|
188
|
-
code:
|
188
|
+
code: '20'
|
189
189
|
unofficial_names: Chiquimula
|
190
190
|
geo:
|
191
191
|
latitude: 14.783333
|
@@ -242,9 +242,9 @@ CQ:
|
|
242
242
|
'no': Chiquimula
|
243
243
|
comments:
|
244
244
|
type: department
|
245
|
-
|
245
|
+
'05':
|
246
246
|
name: Escuintla
|
247
|
-
code:
|
247
|
+
code: '05'
|
248
248
|
unofficial_names: Escuintla
|
249
249
|
geo:
|
250
250
|
latitude: 14.3009389
|
@@ -302,9 +302,9 @@ ES:
|
|
302
302
|
'no': Escuintla
|
303
303
|
comments:
|
304
304
|
type: department
|
305
|
-
|
305
|
+
'01':
|
306
306
|
name: Guatemala
|
307
|
-
code:
|
307
|
+
code: '01'
|
308
308
|
unofficial_names: Guatemala
|
309
309
|
geo:
|
310
310
|
latitude: 14.613333
|
@@ -365,9 +365,9 @@ GU:
|
|
365
365
|
'no': Guatemala
|
366
366
|
comments:
|
367
367
|
type: department
|
368
|
-
|
368
|
+
'13':
|
369
369
|
name: Huehuetenango
|
370
|
-
code:
|
370
|
+
code: '13'
|
371
371
|
unofficial_names: Huehuetenango
|
372
372
|
geo:
|
373
373
|
latitude: 15.314722
|
@@ -425,9 +425,9 @@ HU:
|
|
425
425
|
'no': Huehuetenango
|
426
426
|
comments:
|
427
427
|
type: department
|
428
|
-
|
428
|
+
'18':
|
429
429
|
name: Izabal
|
430
|
-
code:
|
430
|
+
code: '18'
|
431
431
|
unofficial_names: Izabal
|
432
432
|
geo:
|
433
433
|
latitude: 15.4036847
|
@@ -485,9 +485,9 @@ IZ:
|
|
485
485
|
'no': Izabal
|
486
486
|
comments:
|
487
487
|
type: department
|
488
|
-
|
488
|
+
'21':
|
489
489
|
name: Jalapa
|
490
|
-
code:
|
490
|
+
code: '21'
|
491
491
|
unofficial_names: Jalapa
|
492
492
|
geo:
|
493
493
|
latitude: 14.5655154
|
@@ -545,9 +545,9 @@ JA:
|
|
545
545
|
'no': Jalapa
|
546
546
|
comments:
|
547
547
|
type: department
|
548
|
-
|
548
|
+
'22':
|
549
549
|
name: Jutiapa
|
550
|
-
code:
|
550
|
+
code: '22'
|
551
551
|
unofficial_names: Jutiapa
|
552
552
|
geo:
|
553
553
|
latitude: 14.282778
|
@@ -606,9 +606,9 @@ JU:
|
|
606
606
|
'no': Jutiapa
|
607
607
|
comments:
|
608
608
|
type: department
|
609
|
-
|
609
|
+
'17':
|
610
610
|
name: Petén
|
611
|
-
code:
|
611
|
+
code: '17'
|
612
612
|
unofficial_names: Petén
|
613
613
|
geo:
|
614
614
|
latitude: 16.912033
|
@@ -668,9 +668,9 @@ PE:
|
|
668
668
|
'no': Petén
|
669
669
|
comments:
|
670
670
|
type: department
|
671
|
-
|
671
|
+
'02':
|
672
672
|
name: El Progreso
|
673
|
-
code:
|
673
|
+
code: '02'
|
674
674
|
unofficial_names: El Progreso
|
675
675
|
geo:
|
676
676
|
latitude: 14.86527
|
@@ -728,9 +728,9 @@ PR:
|
|
728
728
|
'no': El Progreso
|
729
729
|
comments:
|
730
730
|
type: department
|
731
|
-
|
731
|
+
'14':
|
732
732
|
name: Quiché
|
733
|
-
code:
|
733
|
+
code: '14'
|
734
734
|
unofficial_names: Quiché
|
735
735
|
geo:
|
736
736
|
latitude: 15.4983808
|
@@ -788,9 +788,9 @@ QC:
|
|
788
788
|
'no': Quiché
|
789
789
|
comments:
|
790
790
|
type: department
|
791
|
-
|
791
|
+
'09':
|
792
792
|
name: Quetzaltenango
|
793
|
-
code:
|
793
|
+
code: '09'
|
794
794
|
unofficial_names:
|
795
795
|
- Quetzaltenango
|
796
796
|
geo:
|
@@ -851,9 +851,9 @@ QZ:
|
|
851
851
|
'no': Quetzaltenango
|
852
852
|
comments:
|
853
853
|
type: department
|
854
|
-
|
854
|
+
'11':
|
855
855
|
name: Retalhuleu
|
856
|
-
code:
|
856
|
+
code: '11'
|
857
857
|
unofficial_names: Retalhuleu
|
858
858
|
geo:
|
859
859
|
latitude: 14.533333
|
@@ -912,9 +912,9 @@ RE:
|
|
912
912
|
'no': Retalhuleu
|
913
913
|
comments:
|
914
914
|
type: department
|
915
|
-
|
915
|
+
'03':
|
916
916
|
name: Sacatepéquez
|
917
|
-
code:
|
917
|
+
code: '03'
|
918
918
|
unofficial_names: Sacatepéquez
|
919
919
|
geo:
|
920
920
|
latitude: 14.6110576
|
@@ -974,9 +974,9 @@ SA:
|
|
974
974
|
'no': Sacatepéquez
|
975
975
|
comments:
|
976
976
|
type: department
|
977
|
-
|
977
|
+
'12':
|
978
978
|
name: San Marcos
|
979
|
-
code:
|
979
|
+
code: '12'
|
980
980
|
unofficial_names: San Marcos
|
981
981
|
geo:
|
982
982
|
latitude: 14.9309569
|
@@ -1034,9 +1034,9 @@ SM:
|
|
1034
1034
|
'no': San Marcos (departement)
|
1035
1035
|
comments:
|
1036
1036
|
type: department
|
1037
|
-
|
1037
|
+
'07':
|
1038
1038
|
name: Sololá
|
1039
|
-
code:
|
1039
|
+
code: '07'
|
1040
1040
|
unofficial_names: Sololá
|
1041
1041
|
geo:
|
1042
1042
|
latitude: 14.773889
|
@@ -1094,9 +1094,9 @@ SO:
|
|
1094
1094
|
'no': Sololá
|
1095
1095
|
comments:
|
1096
1096
|
type: department
|
1097
|
-
|
1097
|
+
'06':
|
1098
1098
|
name: Santa Rosa
|
1099
|
-
code:
|
1099
|
+
code: '06'
|
1100
1100
|
unofficial_names: Santa Rosa
|
1101
1101
|
geo:
|
1102
1102
|
latitude: 14.1928003
|
@@ -1156,9 +1156,9 @@ SR:
|
|
1156
1156
|
'no': Santa Rosa (departement)
|
1157
1157
|
comments:
|
1158
1158
|
type: department
|
1159
|
-
|
1159
|
+
'10':
|
1160
1160
|
name: Suchitepéquez
|
1161
|
-
code:
|
1161
|
+
code: '10'
|
1162
1162
|
unofficial_names: Suchitepéquez
|
1163
1163
|
geo:
|
1164
1164
|
latitude: 14.4215982
|
@@ -1216,9 +1216,9 @@ SU:
|
|
1216
1216
|
'no': Suchitepéquez
|
1217
1217
|
comments:
|
1218
1218
|
type: department
|
1219
|
-
|
1219
|
+
'08':
|
1220
1220
|
name: Totonicapán
|
1221
|
-
code:
|
1221
|
+
code: '08'
|
1222
1222
|
unofficial_names: Totonicapán
|
1223
1223
|
geo:
|
1224
1224
|
latitude: 14.910833
|
@@ -1276,9 +1276,9 @@ TO:
|
|
1276
1276
|
'no': Totonicapán (departement)
|
1277
1277
|
comments:
|
1278
1278
|
type: department
|
1279
|
-
|
1279
|
+
'19':
|
1280
1280
|
name: Zacapa
|
1281
|
-
code:
|
1281
|
+
code: '19'
|
1282
1282
|
unofficial_names: Zacapa
|
1283
1283
|
geo:
|
1284
1284
|
latitude: 15.0784265
|
data/lib/countries/data.rb
CHANGED
data/lib/countries/iso3166.rb
CHANGED
@@ -11,6 +11,7 @@ require 'countries/structure'
|
|
11
11
|
require 'countries/translations'
|
12
12
|
require 'countries/country/country_subdivision_methods'
|
13
13
|
require 'countries/country/class_methods'
|
14
|
+
require 'countries/country/conversion_methods'
|
14
15
|
require 'countries/country/finder_methods'
|
15
16
|
require 'countries/country/emoji'
|
16
17
|
require 'countries/country'
|
@@ -24,7 +24,7 @@ module Sources
|
|
24
24
|
last_country_code_seen = nil
|
25
25
|
|
26
26
|
subdivisions.each_with_index do |subdivision, index|
|
27
|
-
subdivision = Sources::CLDR::Subdivision.new(language_code
|
27
|
+
subdivision = Sources::CLDR::Subdivision.new(language_code:, xml: subdivision)
|
28
28
|
data = @loader.load(subdivision.country_code)
|
29
29
|
data[subdivision.code] ||= {}
|
30
30
|
data[subdivision.code] = data[subdivision.code].deep_merge(subdivision.to_h)
|
data/lib/countries/sources.rb
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require_relative '
|
4
|
-
require_relative '
|
3
|
+
require_relative 'sources/local/cached_loader'
|
4
|
+
require_relative 'sources/local/subdivision'
|
5
5
|
|
6
|
-
require_relative '
|
7
|
-
require_relative '
|
8
|
-
require_relative '
|
6
|
+
require_relative 'sources/cldr/downloader'
|
7
|
+
require_relative 'sources/cldr/subdivision'
|
8
|
+
require_relative 'sources/cldr/subdivision_updater'
|
data/lib/countries/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: countries
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 7.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Josh Robinson
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2024-
|
14
|
+
date: 2024-09-29 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: unaccent
|
@@ -229,6 +229,7 @@ files:
|
|
229
229
|
- lib/countries/configuration.rb
|
230
230
|
- lib/countries/country.rb
|
231
231
|
- lib/countries/country/class_methods.rb
|
232
|
+
- lib/countries/country/conversion_methods.rb
|
232
233
|
- lib/countries/country/country_subdivision_methods.rb
|
233
234
|
- lib/countries/country/currency_methods.rb
|
234
235
|
- lib/countries/country/emoji.rb
|
@@ -848,14 +849,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
848
849
|
requirements:
|
849
850
|
- - ">="
|
850
851
|
- !ruby/object:Gem::Version
|
851
|
-
version: '3.
|
852
|
+
version: '3.1'
|
852
853
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
853
854
|
requirements:
|
854
855
|
- - ">="
|
855
856
|
- !ruby/object:Gem::Version
|
856
857
|
version: '0'
|
857
858
|
requirements: []
|
858
|
-
rubygems_version: 3.5.
|
859
|
+
rubygems_version: 3.5.16
|
859
860
|
signing_key:
|
860
861
|
specification_version: 4
|
861
862
|
summary: Gives you a country object full of all sorts of useful information.
|