countries 5.7.2 → 6.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -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
@@ -2,8 +2,8 @@
2
2
 
3
3
  module ISO3166
4
4
  module CountryFinderMethods
5
- FIND_BY_REGEX = /^find_(all_)?(country_|countries_)?by_(.+)/.freeze
6
- SEARCH_TERM_FILTER_REGEX = /\(|\)|\[\]|,/.freeze
5
+ FIND_BY_REGEX = /^find_(all_)?(country_|countries_)?by_(.+)/
6
+ SEARCH_TERM_FILTER_REGEX = /\(|\)|\[\]|,/
7
7
 
8
8
  def search(query)
9
9
  country = new(query.to_s.upcase)
@@ -3,6 +3,7 @@
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
@@ -10,13 +11,13 @@ module ISO3166
10
11
 
11
12
  ISO3166::DEFAULT_COUNTRY_HASH.each do |method_name, _type|
12
13
  define_method method_name do
13
- data[method_name.to_s].freeze
14
+ data[method_name.to_s]
14
15
  end
15
16
  end
16
17
 
17
18
  ISO3166::DEFAULT_COUNTRY_HASH['geo'].each do |method_name, _type|
18
19
  define_method method_name do
19
- data['geo'][method_name.to_s].freeze
20
+ data['geo'][method_name.to_s]
20
21
  end
21
22
  end
22
23
 
@@ -53,6 +53,7 @@ BG:
53
53
  un_locode: BG
54
54
  unofficial_names:
55
55
  - Bulgaria
56
+ - България
56
57
  - Bulgarien
57
58
  - Bulgarie
58
59
  - ブルガリア
@@ -51,7 +51,7 @@ EE:
51
51
  - Estonie
52
52
  - エストニア
53
53
  vat_rates:
54
- standard: 20
54
+ standard: 22
55
55
  reduced:
56
56
  - 9
57
57
  super_reduced:
@@ -36,6 +36,7 @@ NL:
36
36
  - nl
37
37
  languages_spoken:
38
38
  - nl
39
+ - fy
39
40
  national_destination_code_lengths:
40
41
  - 2
41
42
  national_number_lengths:
@@ -1,7 +1,7 @@
1
1
  ---
2
- AV:
2
+ '16':
3
3
  name: Alta Verapaz
4
- code: AV
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
- BV:
64
+ '15':
65
65
  name: Baja Verapaz
66
- code: BV
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
- CM:
125
+ '04':
126
126
  name: Chimaltenango
127
- code: CM
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
- CQ:
186
+ '20':
187
187
  name: Chiquimula
188
- code: CQ
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
- ES:
245
+ '05':
246
246
  name: Escuintla
247
- code: ES
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
- GU:
305
+ '01':
306
306
  name: Guatemala
307
- code: GU
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
- HU:
368
+ '13':
369
369
  name: Huehuetenango
370
- code: HU
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
- IZ:
428
+ '18':
429
429
  name: Izabal
430
- code: IZ
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
- JA:
488
+ '21':
489
489
  name: Jalapa
490
- code: JA
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
- JU:
548
+ '22':
549
549
  name: Jutiapa
550
- code: JU
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
- PE:
609
+ '17':
610
610
  name: Petén
611
- code: PE
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
- PR:
671
+ '02':
672
672
  name: El Progreso
673
- code: PR
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
- QC:
731
+ '14':
732
732
  name: Quiché
733
- code: QC
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
- QZ:
791
+ '09':
792
792
  name: Quetzaltenango
793
- code: QZ
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
- RE:
854
+ '11':
855
855
  name: Retalhuleu
856
- code: RE
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
- SA:
915
+ '03':
916
916
  name: Sacatepéquez
917
- code: SA
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
- SM:
977
+ '12':
978
978
  name: San Marcos
979
- code: SM
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
- SO:
1037
+ '07':
1038
1038
  name: Sololá
1039
- code: SO
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
- SR:
1097
+ '06':
1098
1098
  name: Santa Rosa
1099
- code: SR
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
- SU:
1159
+ '10':
1160
1160
  name: Suchitepéquez
1161
- code: SU
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
- TO:
1219
+ '08':
1220
1220
  name: Totonicapán
1221
- code: TO
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
- ZA:
1279
+ '19':
1280
1280
  name: Zacapa
1281
- code: ZA
1281
+ code: '19'
1282
1282
  unofficial_names: Zacapa
1283
1283
  geo:
1284
1284
  latitude: 15.0784265
@@ -45,10 +45,12 @@ module ISO3166
45
45
 
46
46
  # Resets the loaded data and cache
47
47
  def reset
48
- @cache = {}
49
- @subdivisions = {}
50
- @registered_data = {}
51
- ISO3166.configuration.loaded_locales = []
48
+ synchronized do
49
+ @cache = {}
50
+ @subdivisions = {}
51
+ @registered_data = {}
52
+ ISO3166.configuration.loaded_locales = []
53
+ end
52
54
  end
53
55
 
54
56
  def codes
@@ -97,16 +99,7 @@ module ISO3166
97
99
  end
98
100
 
99
101
  def synchronized(&block)
100
- if use_mutex?
101
- @mutex.synchronize(&block)
102
- else
103
- block.call
104
- end
105
- end
106
-
107
- def use_mutex?
108
- # Stubbed in testing
109
- true
102
+ @mutex.synchronize(&block)
110
103
  end
111
104
 
112
105
  def load_required?
@@ -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'
@@ -7,7 +7,7 @@ namespace :postal_codes do
7
7
  require 'open-uri'
8
8
  require 'yaml'
9
9
 
10
- country_files = Dir['lib/countries/data/countries/*.yaml'].sort
10
+ country_files = Dir['lib/countries/data/countries/*.yaml']
11
11
 
12
12
  country_files.each do |country_file|
13
13
  yaml = YAML.load_file(country_file)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Countries
4
- VERSION = '5.7.2'
4
+ VERSION = '6.0.1'
5
5
  end
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: 5.7.2
4
+ version: 6.0.1
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-02-17 00:00:00.000000000 Z
14
+ date: 2024-05-18 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: '2.7'
852
+ version: '3.0'
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.4.19
859
+ rubygems_version: 3.5.9
859
860
  signing_key:
860
861
  specification_version: 4
861
862
  summary: Gives you a country object full of all sorts of useful information.