countries 2.1.4 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (67) hide show
  1. checksums.yaml +5 -5
  2. data/.travis.yml +3 -3
  3. data/CHANGELOG.md +43 -0
  4. data/Gemfile +1 -0
  5. data/README.markdown +25 -8
  6. data/countries.gemspec +0 -1
  7. data/lib/countries/cache/countries.json +1 -1
  8. data/lib/countries/cache/locales/sv.json +1 -1
  9. data/lib/countries/configuration.rb +5 -0
  10. data/lib/countries/country.rb +7 -23
  11. data/lib/countries/country/class_methods.rb +20 -0
  12. data/lib/countries/country/currency_methods.rb +10 -0
  13. data/lib/countries/data/countries/AE.yaml +5 -0
  14. data/lib/countries/data/countries/AU.yaml +5 -0
  15. data/lib/countries/data/countries/BR.yaml +7 -0
  16. data/lib/countries/data/countries/CZ.yaml +1 -1
  17. data/lib/countries/data/countries/GR.yaml +2 -2
  18. data/lib/countries/data/countries/HT.yaml +1 -1
  19. data/lib/countries/data/countries/IS.yaml +6 -0
  20. data/lib/countries/data/countries/LT.yaml +1 -0
  21. data/lib/countries/data/countries/NC.yaml +1 -1
  22. data/lib/countries/data/countries/NG.yaml +5 -0
  23. data/lib/countries/data/countries/NP.yaml +1 -1
  24. data/lib/countries/data/countries/NZ.yaml +6 -0
  25. data/lib/countries/data/countries/SG.yaml +1 -1
  26. data/lib/countries/data/countries/TH.yaml +5 -0
  27. data/lib/countries/data/countries/UA.yaml +6 -0
  28. data/lib/countries/data/countries/VE.yaml +1 -1
  29. data/lib/countries/data/subdivisions/AD.yaml +1 -1
  30. data/lib/countries/data/subdivisions/AI.yaml +183 -0
  31. data/lib/countries/data/subdivisions/AS.yaml +66 -0
  32. data/lib/countries/data/subdivisions/AX.yaml +40 -0
  33. data/lib/countries/data/subdivisions/BM.yaml +144 -0
  34. data/lib/countries/data/subdivisions/CK.yaml +144 -0
  35. data/lib/countries/data/subdivisions/CN.yaml +33 -0
  36. data/lib/countries/data/subdivisions/CU.yaml +0 -12
  37. data/lib/countries/data/subdivisions/EC.yaml +18 -24
  38. data/lib/countries/data/subdivisions/FO.yaml +79 -0
  39. data/lib/countries/data/subdivisions/GG.yaml +144 -0
  40. data/lib/countries/data/subdivisions/GU.yaml +248 -0
  41. data/lib/countries/data/subdivisions/HK.yaml +235 -0
  42. data/lib/countries/data/subdivisions/IM.yaml +313 -0
  43. data/lib/countries/data/subdivisions/JE.yaml +157 -0
  44. data/lib/countries/data/subdivisions/MP.yaml +53 -0
  45. data/lib/countries/data/subdivisions/MS.yaml +40 -0
  46. data/lib/countries/data/subdivisions/MX.yaml +0 -3
  47. data/lib/countries/data/subdivisions/NC.yaml +40 -0
  48. data/lib/countries/data/subdivisions/PA.yaml +50 -27
  49. data/lib/countries/data/subdivisions/PE.yaml +9 -12
  50. data/lib/countries/data/subdivisions/PF.yaml +66 -0
  51. data/lib/countries/data/subdivisions/PM.yaml +27 -0
  52. data/lib/countries/data/subdivisions/PR.yaml +1015 -0
  53. data/lib/countries/data/subdivisions/SD.yaml +40 -45
  54. data/lib/countries/data/subdivisions/SJ.yaml +27 -0
  55. data/lib/countries/data/subdivisions/TK.yaml +40 -0
  56. data/lib/countries/data/subdivisions/UY.yaml +1 -1
  57. data/lib/countries/data/subdivisions/VI.yaml +40 -0
  58. data/lib/countries/data/subdivisions/YT.yaml +222 -0
  59. data/lib/countries/data/translation_corrections.yaml +1 -1
  60. data/lib/countries/iso3166.rb +1 -1
  61. data/lib/countries/version.rb +1 -1
  62. data/spec/00_global_spec.rb +56 -0
  63. data/spec/configuration_spec.rb +1 -0
  64. data/spec/country_spec.rb +1 -0
  65. data/spec/perf_spec.rb +1 -1
  66. metadata +27 -19
  67. data/spec/global_spec.rb +0 -29
@@ -28,5 +28,5 @@ fa:
28
28
  he:
29
29
  PS: "פלסטין, מדינת"
30
30
  VI: "איי הבתולה (ארה)"
31
- se:
31
+ sv:
32
32
  GB: "Storbritannien"
@@ -1,6 +1,6 @@
1
1
  require 'yaml'
2
+ require 'json'
2
3
  require 'i18n_data'
3
- require 'money'
4
4
 
5
5
  require 'countries/kwarg_struct'
6
6
  require 'countries/configuration'
@@ -1,3 +1,3 @@
1
1
  module Countries
2
- VERSION = '2.1.4'.freeze
2
+ VERSION = '3.0.0'.freeze
3
3
  end
@@ -0,0 +1,56 @@
1
+ describe 'global Country class', order: :defined do
2
+ context "when loaded via 'iso3166' existence" do
3
+ subject { defined?(Country) }
4
+
5
+ it { is_expected.to be_falsey }
6
+ end
7
+
8
+ context "when loaded via 'global'" do
9
+ before { require 'countries/global' }
10
+
11
+ it 'does not pollute global namespace with Money gem' do
12
+ expect(defined?(Money)).not_to be
13
+ expect(ISO3166::Country.new('DE').respond_to?(:currency)).not_to be
14
+ end
15
+
16
+ describe 'existence' do
17
+ subject { defined?(Country) }
18
+
19
+ it { is_expected.to be_truthy }
20
+ end
21
+
22
+ describe 'superclass' do
23
+ subject { Country.superclass }
24
+
25
+ it { is_expected.to eq(ISO3166::Country) }
26
+ end
27
+
28
+ describe 'to_s' do
29
+ it 'should return the country name' do
30
+ expect(Country.new('GB').to_s).to eq('United Kingdom of Great Britain and Northern Ireland')
31
+ end
32
+ end
33
+
34
+ describe 'currency' do
35
+ it { expect(Country.new('GB').respond_to?(:currency)).not_to be }
36
+
37
+ context 'I enable currency extension via config' do
38
+ before { ISO3166.configuration.enable_currency_extension! }
39
+
40
+ it 'should add currency to global country' do
41
+ expect(Country.new('GB').currency).to be
42
+ end
43
+ end
44
+ end
45
+
46
+ context 'I enable currency extension via config' do
47
+ before { ISO3166.configuration.enable_currency_extension! }
48
+
49
+ it 'should add currency to global country' do
50
+ expect(Country.new('GB').currency).to be
51
+ expect(defined?(Money)).to be
52
+ expect(ISO3166::Country.new('DE').currency).to be
53
+ end
54
+ end
55
+ end
56
+ end
@@ -1,5 +1,6 @@
1
1
  # encoding: utf-8
2
2
  require 'spec_helper'
3
+ require 'i18n'
3
4
 
4
5
  describe 'ISO3166.configuration' do
5
6
  it 'has a configuration' do
@@ -3,6 +3,7 @@
3
3
  require 'spec_helper'
4
4
  NUM_OF_COUNTRIES = 249
5
5
  describe ISO3166::Country do
6
+ before { ISO3166.configuration.enable_currency_extension! }
6
7
  let(:country) { ISO3166::Country.search('US') }
7
8
 
8
9
  it 'allows to create a country object from a symbol representation of the alpha2 code' do
@@ -13,7 +13,7 @@ describe ISO3166::Data, perf: true, order: :defined do
13
13
  :zh, :zu
14
14
  ].freeze
15
15
 
16
- def perf_report(name)
16
+ def perf_report(_name)
17
17
  require 'benchmark'
18
18
  require 'memory_profiler'
19
19
  require 'ruby-prof'
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: 2.1.4
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josh Robinson
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2018-02-09 00:00:00.000000000 Z
13
+ date: 2018-12-18 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: i18n_data
@@ -26,20 +26,6 @@ dependencies:
26
26
  - - "~>"
27
27
  - !ruby/object:Gem::Version
28
28
  version: 0.8.0
29
- - !ruby/object:Gem::Dependency
30
- name: money
31
- requirement: !ruby/object:Gem::Requirement
32
- requirements:
33
- - - "~>"
34
- - !ruby/object:Gem::Version
35
- version: '6.9'
36
- type: :runtime
37
- prerelease: false
38
- version_requirements: !ruby/object:Gem::Requirement
39
- requirements:
40
- - - "~>"
41
- - !ruby/object:Gem::Version
42
- version: '6.9'
43
29
  - !ruby/object:Gem::Dependency
44
30
  name: unicode_utils
45
31
  requirement: !ruby/object:Gem::Requirement
@@ -229,6 +215,7 @@ files:
229
215
  - lib/countries/configuration.rb
230
216
  - lib/countries/country.rb
231
217
  - lib/countries/country/class_methods.rb
218
+ - lib/countries/country/currency_methods.rb
232
219
  - lib/countries/country/emoji.rb
233
220
  - lib/countries/data.rb
234
221
  - lib/countries/data/countries/AD.yaml
@@ -484,12 +471,15 @@ files:
484
471
  - lib/countries/data/subdivisions/AE.yaml
485
472
  - lib/countries/data/subdivisions/AF.yaml
486
473
  - lib/countries/data/subdivisions/AG.yaml
474
+ - lib/countries/data/subdivisions/AI.yaml
487
475
  - lib/countries/data/subdivisions/AL.yaml
488
476
  - lib/countries/data/subdivisions/AM.yaml
489
477
  - lib/countries/data/subdivisions/AO.yaml
490
478
  - lib/countries/data/subdivisions/AR.yaml
479
+ - lib/countries/data/subdivisions/AS.yaml
491
480
  - lib/countries/data/subdivisions/AT.yaml
492
481
  - lib/countries/data/subdivisions/AU.yaml
482
+ - lib/countries/data/subdivisions/AX.yaml
493
483
  - lib/countries/data/subdivisions/AZ.yaml
494
484
  - lib/countries/data/subdivisions/BA.yaml
495
485
  - lib/countries/data/subdivisions/BB.yaml
@@ -500,6 +490,7 @@ files:
500
490
  - lib/countries/data/subdivisions/BH.yaml
501
491
  - lib/countries/data/subdivisions/BI.yaml
502
492
  - lib/countries/data/subdivisions/BJ.yaml
493
+ - lib/countries/data/subdivisions/BM.yaml
503
494
  - lib/countries/data/subdivisions/BN.yaml
504
495
  - lib/countries/data/subdivisions/BO.yaml
505
496
  - lib/countries/data/subdivisions/BQ.yaml
@@ -515,6 +506,7 @@ files:
515
506
  - lib/countries/data/subdivisions/CG.yaml
516
507
  - lib/countries/data/subdivisions/CH.yaml
517
508
  - lib/countries/data/subdivisions/CI.yaml
509
+ - lib/countries/data/subdivisions/CK.yaml
518
510
  - lib/countries/data/subdivisions/CL.yaml
519
511
  - lib/countries/data/subdivisions/CM.yaml
520
512
  - lib/countries/data/subdivisions/CN.yaml
@@ -540,11 +532,13 @@ files:
540
532
  - lib/countries/data/subdivisions/FI.yaml
541
533
  - lib/countries/data/subdivisions/FJ.yaml
542
534
  - lib/countries/data/subdivisions/FM.yaml
535
+ - lib/countries/data/subdivisions/FO.yaml
543
536
  - lib/countries/data/subdivisions/FR.yaml
544
537
  - lib/countries/data/subdivisions/GA.yaml
545
538
  - lib/countries/data/subdivisions/GB.yaml
546
539
  - lib/countries/data/subdivisions/GD.yaml
547
540
  - lib/countries/data/subdivisions/GE.yaml
541
+ - lib/countries/data/subdivisions/GG.yaml
548
542
  - lib/countries/data/subdivisions/GH.yaml
549
543
  - lib/countries/data/subdivisions/GL.yaml
550
544
  - lib/countries/data/subdivisions/GM.yaml
@@ -552,8 +546,10 @@ files:
552
546
  - lib/countries/data/subdivisions/GQ.yaml
553
547
  - lib/countries/data/subdivisions/GR.yaml
554
548
  - lib/countries/data/subdivisions/GT.yaml
549
+ - lib/countries/data/subdivisions/GU.yaml
555
550
  - lib/countries/data/subdivisions/GW.yaml
556
551
  - lib/countries/data/subdivisions/GY.yaml
552
+ - lib/countries/data/subdivisions/HK.yaml
557
553
  - lib/countries/data/subdivisions/HN.yaml
558
554
  - lib/countries/data/subdivisions/HR.yaml
559
555
  - lib/countries/data/subdivisions/HT.yaml
@@ -561,11 +557,13 @@ files:
561
557
  - lib/countries/data/subdivisions/ID.yaml
562
558
  - lib/countries/data/subdivisions/IE.yaml
563
559
  - lib/countries/data/subdivisions/IL.yaml
560
+ - lib/countries/data/subdivisions/IM.yaml
564
561
  - lib/countries/data/subdivisions/IN.yaml
565
562
  - lib/countries/data/subdivisions/IQ.yaml
566
563
  - lib/countries/data/subdivisions/IR.yaml
567
564
  - lib/countries/data/subdivisions/IS.yaml
568
565
  - lib/countries/data/subdivisions/IT.yaml
566
+ - lib/countries/data/subdivisions/JE.yaml
569
567
  - lib/countries/data/subdivisions/JM.yaml
570
568
  - lib/countries/data/subdivisions/JO.yaml
571
569
  - lib/countries/data/subdivisions/JP.yaml
@@ -601,7 +599,9 @@ files:
601
599
  - lib/countries/data/subdivisions/ML.yaml
602
600
  - lib/countries/data/subdivisions/MM.yaml
603
601
  - lib/countries/data/subdivisions/MN.yaml
602
+ - lib/countries/data/subdivisions/MP.yaml
604
603
  - lib/countries/data/subdivisions/MR.yaml
604
+ - lib/countries/data/subdivisions/MS.yaml
605
605
  - lib/countries/data/subdivisions/MT.yaml
606
606
  - lib/countries/data/subdivisions/MU.yaml
607
607
  - lib/countries/data/subdivisions/MV.yaml
@@ -610,6 +610,7 @@ files:
610
610
  - lib/countries/data/subdivisions/MY.yaml
611
611
  - lib/countries/data/subdivisions/MZ.yaml
612
612
  - lib/countries/data/subdivisions/NA.yaml
613
+ - lib/countries/data/subdivisions/NC.yaml
613
614
  - lib/countries/data/subdivisions/NE.yaml
614
615
  - lib/countries/data/subdivisions/NG.yaml
615
616
  - lib/countries/data/subdivisions/NI.yaml
@@ -621,10 +622,13 @@ files:
621
622
  - lib/countries/data/subdivisions/OM.yaml
622
623
  - lib/countries/data/subdivisions/PA.yaml
623
624
  - lib/countries/data/subdivisions/PE.yaml
625
+ - lib/countries/data/subdivisions/PF.yaml
624
626
  - lib/countries/data/subdivisions/PG.yaml
625
627
  - lib/countries/data/subdivisions/PH.yaml
626
628
  - lib/countries/data/subdivisions/PK.yaml
627
629
  - lib/countries/data/subdivisions/PL.yaml
630
+ - lib/countries/data/subdivisions/PM.yaml
631
+ - lib/countries/data/subdivisions/PR.yaml
628
632
  - lib/countries/data/subdivisions/PS.yaml
629
633
  - lib/countries/data/subdivisions/PT.yaml
630
634
  - lib/countries/data/subdivisions/PW.yaml
@@ -642,6 +646,7 @@ files:
642
646
  - lib/countries/data/subdivisions/SG.yaml
643
647
  - lib/countries/data/subdivisions/SH.yaml
644
648
  - lib/countries/data/subdivisions/SI.yaml
649
+ - lib/countries/data/subdivisions/SJ.yaml
645
650
  - lib/countries/data/subdivisions/SK.yaml
646
651
  - lib/countries/data/subdivisions/SL.yaml
647
652
  - lib/countries/data/subdivisions/SM.yaml
@@ -658,6 +663,7 @@ files:
658
663
  - lib/countries/data/subdivisions/TG.yaml
659
664
  - lib/countries/data/subdivisions/TH.yaml
660
665
  - lib/countries/data/subdivisions/TJ.yaml
666
+ - lib/countries/data/subdivisions/TK.yaml
661
667
  - lib/countries/data/subdivisions/TL.yaml
662
668
  - lib/countries/data/subdivisions/TM.yaml
663
669
  - lib/countries/data/subdivisions/TN.yaml
@@ -675,11 +681,13 @@ files:
675
681
  - lib/countries/data/subdivisions/UZ.yaml
676
682
  - lib/countries/data/subdivisions/VC.yaml
677
683
  - lib/countries/data/subdivisions/VE.yaml
684
+ - lib/countries/data/subdivisions/VI.yaml
678
685
  - lib/countries/data/subdivisions/VN.yaml
679
686
  - lib/countries/data/subdivisions/VU.yaml
680
687
  - lib/countries/data/subdivisions/WF.yaml
681
688
  - lib/countries/data/subdivisions/WS.yaml
682
689
  - lib/countries/data/subdivisions/YE.yaml
690
+ - lib/countries/data/subdivisions/YT.yaml
683
691
  - lib/countries/data/subdivisions/ZA.yaml
684
692
  - lib/countries/data/subdivisions/ZM.yaml
685
693
  - lib/countries/data/subdivisions/ZW.yaml
@@ -701,10 +709,10 @@ files:
701
709
  - lib/countries/timezones.rb
702
710
  - lib/countries/translations.rb
703
711
  - lib/countries/version.rb
712
+ - spec/00_global_spec.rb
704
713
  - spec/configuration_spec.rb
705
714
  - spec/country_spec.rb
706
715
  - spec/data_spec.rb
707
- - spec/global_spec.rb
708
716
  - spec/mongoid_spec.rb
709
717
  - spec/perf_spec.rb
710
718
  - spec/spec_helper.rb
@@ -730,15 +738,15 @@ required_rubygems_version: !ruby/object:Gem::Requirement
730
738
  version: '0'
731
739
  requirements: []
732
740
  rubyforge_project:
733
- rubygems_version: 2.6.13
741
+ rubygems_version: 2.7.3
734
742
  signing_key:
735
743
  specification_version: 4
736
744
  summary: Gives you a country object full of all sorts of useful information.
737
745
  test_files:
746
+ - spec/00_global_spec.rb
738
747
  - spec/configuration_spec.rb
739
748
  - spec/country_spec.rb
740
749
  - spec/data_spec.rb
741
- - spec/global_spec.rb
742
750
  - spec/mongoid_spec.rb
743
751
  - spec/perf_spec.rb
744
752
  - spec/spec_helper.rb
@@ -1,29 +0,0 @@
1
- describe 'global Country class', order: :defined do
2
- context "when loaded via 'iso3166' existence" do
3
- subject { defined?(Country) }
4
-
5
- it { is_expected.to be_falsey }
6
- end
7
-
8
- context "when loaded via 'global'" do
9
- before { require 'countries/global' }
10
-
11
- describe 'existence' do
12
- subject { defined?(Country) }
13
-
14
- it { is_expected.to be_truthy }
15
- end
16
-
17
- describe 'superclass' do
18
- subject { Country.superclass }
19
-
20
- it { is_expected.to eq(ISO3166::Country) }
21
- end
22
-
23
- describe 'to_s' do
24
- it 'should return the country name' do
25
- expect(Country.new('GB').to_s).to eq('United Kingdom of Great Britain and Northern Ireland')
26
- end
27
- end
28
- end
29
- end