countries 4.2.3 → 5.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.
Files changed (50) 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 +7 -2
  7. data/Gemfile +5 -3
  8. data/README.markdown +22 -5
  9. data/Rakefile +13 -31
  10. data/bin/console +1 -0
  11. data/countries.gemspec +7 -5
  12. data/lib/countries/cache/countries.json +1 -1
  13. data/lib/countries/configuration.rb +2 -0
  14. data/lib/countries/country/class_methods.rb +12 -97
  15. data/lib/countries/country/currency_methods.rb +2 -0
  16. data/lib/countries/country/emoji.rb +2 -3
  17. data/lib/countries/country/finder_methods.rb +81 -0
  18. data/lib/countries/country.rb +3 -40
  19. data/lib/countries/data/countries/KN.yaml +0 -1
  20. data/lib/countries/data.rb +34 -37
  21. data/lib/countries/global.rb +2 -0
  22. data/lib/countries/iso3166.rb +3 -0
  23. data/lib/countries/kwarg_struct.rb +2 -0
  24. data/lib/countries/mongoid.rb +2 -0
  25. data/lib/countries/sources/cldr/downloader.rb +8 -8
  26. data/lib/countries/sources/cldr/subdivision.rb +3 -0
  27. data/lib/countries/sources/cldr/subdivision_updater.rb +23 -17
  28. data/lib/countries/sources/local/cached_loader.rb +3 -0
  29. data/lib/countries/sources/local/subdivision.rb +5 -2
  30. data/lib/countries/sources.rb +2 -0
  31. data/lib/countries/structure.rb +1 -1
  32. data/lib/countries/subdivision.rb +2 -0
  33. data/lib/countries/tasks/geocoding.rake +15 -6
  34. data/lib/countries/tasks/postal_codes.rake +5 -3
  35. data/lib/countries/timezones.rb +5 -2
  36. data/lib/countries/translations.rb +2 -0
  37. data/lib/countries/version.rb +3 -1
  38. data/lib/countries.rb +2 -0
  39. data/spec/00_global_spec.rb +2 -0
  40. data/spec/configuration_spec.rb +11 -5
  41. data/spec/country_spec.rb +71 -22
  42. data/spec/data_spec.rb +24 -18
  43. data/spec/mongoid_spec.rb +2 -2
  44. data/spec/perf_spec.rb +16 -16
  45. data/spec/spec_helper.rb +2 -0
  46. data/spec/subdivision_spec.rb +6 -4
  47. data/spec/thread_safety_spec.rb +4 -3
  48. data/spec/timezone_spec.rb +2 -0
  49. metadata +14 -12
  50. data/lib/countries/setup.rb +0 -18
@@ -1,4 +1,4 @@
1
- # coding: utf-8
1
+ # frozen_string_literal: true
2
2
 
3
3
  require 'spec_helper'
4
4
 
@@ -23,9 +23,11 @@ describe ISO3166::Subdivision do
23
23
  describe 'state codes' do
24
24
  it 'should all be strings' do
25
25
  countries.each do |country|
26
- expect(country.subdivisions.keys).to all(be_a(String)), \
27
- "Expected #{country.alpha2.inspect} to have string subdivision" \
28
- "codes but had #{country.subdivisions.keys.inspect}"
26
+ expect(country.subdivisions.keys).to(
27
+ all(be_a(String)),
28
+ "Expected #{country.alpha2.inspect} to have string subdivision \
29
+ codes but had #{country.subdivisions.keys.inspect}"
30
+ )
29
31
  end
30
32
  end
31
33
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  describe 'Accessing ISO3166::Country instances data in multiple threads' do
2
4
  before do
3
5
  if Thread.respond_to?(:report_on_exception)
@@ -12,7 +14,7 @@ describe 'Accessing ISO3166::Country instances data in multiple threads' do
12
14
  nthreads = 100
13
15
  threads = []
14
16
 
15
- alpha2_codes = ['us', 'es', 'nl', 'ca', 'de', 'fr', 'mx', 'ru', 'ch', 'jp']
17
+ alpha2_codes = %w[us es nl ca de fr mx ru ch jp]
16
18
 
17
19
  nthreads.times do
18
20
  threads << Thread.new do
@@ -31,7 +33,7 @@ describe 'Accessing ISO3166::Country instances data in multiple threads' do
31
33
  expect { create_countries_threaded }.to_not raise_error
32
34
  end
33
35
 
34
- it "raises NoMethodError when not using a mutex" do
36
+ it 'raises NoMethodError when not using a mutex' do
35
37
  allow(ISO3166::Data).to receive(:use_mutex?).and_return(false)
36
38
 
37
39
  expect { create_countries_threaded }.to raise_error(NoMethodError)
@@ -43,4 +45,3 @@ describe 'Accessing ISO3166::Country instances data in multiple threads' do
43
45
  end
44
46
  end
45
47
  end
46
-
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  describe 'timezone Country class' do
2
4
  context "when loaded via 'timezone'" do
3
5
  require 'tzinfo'
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.2.3
4
+ version: 5.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: 2022-03-24 00:00:00.000000000 Z
14
+ date: 2022-04-03 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: i18n_data
@@ -42,7 +42,7 @@ dependencies:
42
42
  - !ruby/object:Gem::Version
43
43
  version: '1.1'
44
44
  - !ruby/object:Gem::Dependency
45
- name: rspec
45
+ name: activesupport
46
46
  requirement: !ruby/object:Gem::Requirement
47
47
  requirements:
48
48
  - - ">="
@@ -56,33 +56,33 @@ dependencies:
56
56
  - !ruby/object:Gem::Version
57
57
  version: '3'
58
58
  - !ruby/object:Gem::Dependency
59
- name: activesupport
59
+ name: nokogiri
60
60
  requirement: !ruby/object:Gem::Requirement
61
61
  requirements:
62
62
  - - ">="
63
63
  - !ruby/object:Gem::Version
64
- version: '3'
64
+ version: '1.8'
65
65
  type: :development
66
66
  prerelease: false
67
67
  version_requirements: !ruby/object:Gem::Requirement
68
68
  requirements:
69
69
  - - ">="
70
70
  - !ruby/object:Gem::Version
71
- version: '3'
71
+ version: '1.8'
72
72
  - !ruby/object:Gem::Dependency
73
- name: nokogiri
73
+ name: rspec
74
74
  requirement: !ruby/object:Gem::Requirement
75
75
  requirements:
76
76
  - - ">="
77
77
  - !ruby/object:Gem::Version
78
- version: '1.8'
78
+ version: '3'
79
79
  type: :development
80
80
  prerelease: false
81
81
  version_requirements: !ruby/object:Gem::Requirement
82
82
  requirements:
83
83
  - - ">="
84
84
  - !ruby/object:Gem::Version
85
- version: '1.8'
85
+ version: '3'
86
86
  description: All sorts of useful information about every country packaged as pretty
87
87
  little country objects. It includes data from ISO 3166
88
88
  email:
@@ -93,6 +93,7 @@ executables: []
93
93
  extensions: []
94
94
  extra_rdoc_files: []
95
95
  files:
96
+ - ".github/workflows/codeql-analysis.yml"
96
97
  - ".github/workflows/tests.yml"
97
98
  - ".gitignore"
98
99
  - ".rspec"
@@ -244,6 +245,7 @@ files:
244
245
  - lib/countries/country/class_methods.rb
245
246
  - lib/countries/country/currency_methods.rb
246
247
  - lib/countries/country/emoji.rb
248
+ - lib/countries/country/finder_methods.rb
247
249
  - lib/countries/data.rb
248
250
  - lib/countries/data/countries/AD.yaml
249
251
  - lib/countries/data/countries/AE.yaml
@@ -705,7 +707,6 @@ files:
705
707
  - lib/countries/iso3166.rb
706
708
  - lib/countries/kwarg_struct.rb
707
709
  - lib/countries/mongoid.rb
708
- - lib/countries/setup.rb
709
710
  - lib/countries/sources.rb
710
711
  - lib/countries/sources/cldr/downloader.rb
711
712
  - lib/countries/sources/cldr/subdivision.rb
@@ -737,6 +738,7 @@ metadata:
737
738
  changelog_uri: https://github.com/countries/countries/blob/master/CHANGELOG.md
738
739
  source_code_uri: https://github.com/countries/countries
739
740
  wiki_uri: https://github.com/countries/countries/wiki
741
+ rubygems_mfa_required: 'true'
740
742
  post_install_message:
741
743
  rdoc_options: []
742
744
  require_paths:
@@ -745,14 +747,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
745
747
  requirements:
746
748
  - - ">="
747
749
  - !ruby/object:Gem::Version
748
- version: '2.5'
750
+ version: '2.7'
749
751
  required_rubygems_version: !ruby/object:Gem::Requirement
750
752
  requirements:
751
753
  - - ">="
752
754
  - !ruby/object:Gem::Version
753
755
  version: '0'
754
756
  requirements: []
755
- rubygems_version: 3.3.3
757
+ rubygems_version: 3.3.7
756
758
  signing_key:
757
759
  specification_version: 4
758
760
  summary: Gives you a country object full of all sorts of useful information.
@@ -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