countries 4.2.3 → 5.0.0

Sign up to get free protection for your applications and to get access to all the features.
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