countries 4.1.3 → 4.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +40 -1
- data/README.markdown +42 -35
- data/Rakefile +23 -31
- data/lib/countries/cache/countries.json +1 -1
- data/lib/countries/cache/locales/nb.json +1 -1
- data/lib/countries/cache/locales/nn.json +1 -1
- data/lib/countries/country/class_methods.rb +19 -6
- data/lib/countries/country.rb +42 -2
- data/lib/countries/data/countries/AD.yaml +28 -29
- data/lib/countries/data/countries/AE.yaml +32 -33
- data/lib/countries/data/countries/AF.yaml +32 -33
- data/lib/countries/data/countries/AG.yaml +28 -29
- data/lib/countries/data/countries/AI.yaml +27 -28
- data/lib/countries/data/countries/AL.yaml +28 -29
- data/lib/countries/data/countries/AM.yaml +30 -31
- data/lib/countries/data/countries/AO.yaml +25 -26
- data/lib/countries/data/countries/AQ.yaml +24 -25
- data/lib/countries/data/countries/AR.yaml +30 -31
- data/lib/countries/data/countries/AS.yaml +31 -32
- data/lib/countries/data/countries/AT.yaml +36 -37
- data/lib/countries/data/countries/AU.yaml +33 -34
- data/lib/countries/data/countries/AW.yaml +25 -26
- data/lib/countries/data/countries/AX.yaml +27 -28
- data/lib/countries/data/countries/AZ.yaml +30 -31
- data/lib/countries/data/countries/BA.yaml +32 -33
- data/lib/countries/data/countries/BB.yaml +28 -29
- data/lib/countries/data/countries/BD.yaml +27 -28
- data/lib/countries/data/countries/BE.yaml +41 -42
- data/lib/countries/data/countries/BF.yaml +27 -28
- data/lib/countries/data/countries/BG.yaml +36 -37
- data/lib/countries/data/countries/BH.yaml +28 -29
- data/lib/countries/data/countries/BI.yaml +27 -28
- data/lib/countries/data/countries/BJ.yaml +26 -27
- data/lib/countries/data/countries/BL.yaml +25 -26
- data/lib/countries/data/countries/BM.yaml +29 -30
- data/lib/countries/data/countries/BN.yaml +26 -27
- data/lib/countries/data/countries/BO.yaml +31 -32
- data/lib/countries/data/countries/BQ.yaml +28 -29
- data/lib/countries/data/countries/BR.yaml +35 -36
- data/lib/countries/data/countries/BS.yaml +27 -28
- data/lib/countries/data/countries/BT.yaml +28 -29
- data/lib/countries/data/countries/BV.yaml +23 -24
- data/lib/countries/data/countries/BW.yaml +27 -28
- data/lib/countries/data/countries/BY.yaml +30 -31
- data/lib/countries/data/countries/BZ.yaml +28 -29
- data/lib/countries/data/countries/CA.yaml +30 -31
- data/lib/countries/data/countries/CC.yaml +28 -29
- data/lib/countries/data/countries/CD.yaml +35 -36
- data/lib/countries/data/countries/CF.yaml +29 -30
- data/lib/countries/data/countries/CG.yaml +29 -30
- data/lib/countries/data/countries/CH.yaml +40 -41
- data/lib/countries/data/countries/CI.yaml +27 -28
- data/lib/countries/data/countries/CK.yaml +27 -28
- data/lib/countries/data/countries/CL.yaml +32 -33
- data/lib/countries/data/countries/CM.yaml +29 -30
- data/lib/countries/data/countries/CN.yaml +28 -29
- data/lib/countries/data/countries/CO.yaml +28 -29
- data/lib/countries/data/countries/CR.yaml +26 -27
- data/lib/countries/data/countries/CU.yaml +27 -28
- data/lib/countries/data/countries/CV.yaml +28 -29
- data/lib/countries/data/countries/CW.yaml +25 -26
- data/lib/countries/data/countries/CX.yaml +30 -31
- data/lib/countries/data/countries/CY.yaml +40 -41
- data/lib/countries/data/countries/CZ.yaml +38 -39
- data/lib/countries/data/countries/DE.yaml +36 -37
- data/lib/countries/data/countries/DJ.yaml +29 -30
- data/lib/countries/data/countries/DK.yaml +35 -36
- data/lib/countries/data/countries/DM.yaml +26 -27
- data/lib/countries/data/countries/DO.yaml +28 -29
- data/lib/countries/data/countries/DZ.yaml +28 -29
- data/lib/countries/data/countries/EC.yaml +28 -29
- data/lib/countries/data/countries/EE.yaml +35 -36
- data/lib/countries/data/countries/EG.yaml +28 -29
- data/lib/countries/data/countries/EH.yaml +30 -31
- data/lib/countries/data/countries/ER.yaml +31 -32
- data/lib/countries/data/countries/ES.yaml +36 -37
- data/lib/countries/data/countries/ET.yaml +28 -29
- data/lib/countries/data/countries/FI.yaml +38 -39
- data/lib/countries/data/countries/FJ.yaml +33 -34
- data/lib/countries/data/countries/FK.yaml +29 -30
- data/lib/countries/data/countries/FM.yaml +28 -29
- data/lib/countries/data/countries/FO.yaml +28 -29
- data/lib/countries/data/countries/FR.yaml +37 -38
- data/lib/countries/data/countries/GA.yaml +27 -28
- data/lib/countries/data/countries/GB.yaml +39 -38
- data/lib/countries/data/countries/GD.yaml +26 -27
- data/lib/countries/data/countries/GE.yaml +28 -29
- data/lib/countries/data/countries/GF.yaml +29 -30
- data/lib/countries/data/countries/GG.yaml +30 -31
- data/lib/countries/data/countries/GH.yaml +27 -28
- data/lib/countries/data/countries/GI.yaml +26 -27
- data/lib/countries/data/countries/GL.yaml +29 -30
- data/lib/countries/data/countries/GM.yaml +25 -26
- data/lib/countries/data/countries/GN.yaml +30 -31
- data/lib/countries/data/countries/GP.yaml +27 -28
- data/lib/countries/data/countries/GQ.yaml +29 -30
- data/lib/countries/data/countries/GR.yaml +37 -38
- data/lib/countries/data/countries/GS.yaml +27 -28
- data/lib/countries/data/countries/GT.yaml +26 -27
- data/lib/countries/data/countries/GU.yaml +31 -32
- data/lib/countries/data/countries/GW.yaml +28 -29
- data/lib/countries/data/countries/GY.yaml +26 -27
- data/lib/countries/data/countries/HK.yaml +28 -29
- data/lib/countries/data/countries/HM.yaml +27 -28
- data/lib/countries/data/countries/HN.yaml +27 -28
- data/lib/countries/data/countries/HR.yaml +37 -38
- data/lib/countries/data/countries/HT.yaml +29 -30
- data/lib/countries/data/countries/HU.yaml +37 -38
- data/lib/countries/data/countries/ID.yaml +28 -29
- data/lib/countries/data/countries/IE.yaml +39 -40
- data/lib/countries/data/countries/IL.yaml +35 -29
- data/lib/countries/data/countries/IM.yaml +29 -30
- data/lib/countries/data/countries/IN.yaml +30 -31
- data/lib/countries/data/countries/IO.yaml +26 -27
- data/lib/countries/data/countries/IQ.yaml +28 -29
- data/lib/countries/data/countries/IR.yaml +28 -29
- data/lib/countries/data/countries/IS.yaml +35 -36
- data/lib/countries/data/countries/IT.yaml +36 -37
- data/lib/countries/data/countries/JE.yaml +26 -27
- data/lib/countries/data/countries/JM.yaml +28 -29
- data/lib/countries/data/countries/JO.yaml +28 -29
- data/lib/countries/data/countries/JP.yaml +28 -29
- data/lib/countries/data/countries/KE.yaml +29 -30
- data/lib/countries/data/countries/KG.yaml +30 -31
- data/lib/countries/data/countries/KH.yaml +28 -29
- data/lib/countries/data/countries/KI.yaml +25 -26
- data/lib/countries/data/countries/KM.yaml +29 -30
- data/lib/countries/data/countries/KN.yaml +29 -29
- data/lib/countries/data/countries/KP.yaml +27 -28
- data/lib/countries/data/countries/KR.yaml +28 -29
- data/lib/countries/data/countries/KW.yaml +28 -29
- data/lib/countries/data/countries/KY.yaml +29 -30
- data/lib/countries/data/countries/KZ.yaml +30 -31
- data/lib/countries/data/countries/LA.yaml +27 -28
- data/lib/countries/data/countries/LB.yaml +30 -31
- data/lib/countries/data/countries/LC.yaml +28 -29
- data/lib/countries/data/countries/LI.yaml +27 -28
- data/lib/countries/data/countries/LK.yaml +28 -29
- data/lib/countries/data/countries/LR.yaml +28 -29
- data/lib/countries/data/countries/LS.yaml +28 -29
- data/lib/countries/data/countries/LT.yaml +37 -38
- data/lib/countries/data/countries/LU.yaml +39 -40
- data/lib/countries/data/countries/LV.yaml +36 -37
- data/lib/countries/data/countries/LY.yaml +27 -28
- data/lib/countries/data/countries/MA.yaml +28 -29
- data/lib/countries/data/countries/MC.yaml +28 -29
- data/lib/countries/data/countries/MD.yaml +28 -29
- data/lib/countries/data/countries/ME.yaml +33 -34
- data/lib/countries/data/countries/MF.yaml +29 -30
- data/lib/countries/data/countries/MG.yaml +30 -31
- data/lib/countries/data/countries/MH.yaml +30 -31
- data/lib/countries/data/countries/MK.yaml +28 -29
- data/lib/countries/data/countries/ML.yaml +25 -26
- data/lib/countries/data/countries/MM.yaml +27 -28
- data/lib/countries/data/countries/MN.yaml +28 -29
- data/lib/countries/data/countries/MO.yaml +28 -29
- data/lib/countries/data/countries/MP.yaml +31 -32
- data/lib/countries/data/countries/MQ.yaml +27 -28
- data/lib/countries/data/countries/MR.yaml +29 -30
- data/lib/countries/data/countries/MS.yaml +26 -27
- data/lib/countries/data/countries/MT.yaml +36 -37
- data/lib/countries/data/countries/MU.yaml +28 -29
- data/lib/countries/data/countries/MV.yaml +28 -29
- data/lib/countries/data/countries/MW.yaml +27 -28
- data/lib/countries/data/countries/MX.yaml +33 -34
- data/lib/countries/data/countries/MY.yaml +30 -31
- data/lib/countries/data/countries/MZ.yaml +28 -29
- data/lib/countries/data/countries/NA.yaml +30 -31
- data/lib/countries/data/countries/NC.yaml +29 -30
- data/lib/countries/data/countries/NE.yaml +27 -28
- data/lib/countries/data/countries/NF.yaml +29 -30
- data/lib/countries/data/countries/NG.yaml +33 -34
- data/lib/countries/data/countries/NI.yaml +26 -27
- data/lib/countries/data/countries/NL.yaml +36 -37
- data/lib/countries/data/countries/NO.yaml +36 -37
- data/lib/countries/data/countries/NP.yaml +32 -33
- data/lib/countries/data/countries/NR.yaml +27 -28
- data/lib/countries/data/countries/NU.yaml +25 -26
- data/lib/countries/data/countries/NZ.yaml +34 -35
- data/lib/countries/data/countries/OM.yaml +28 -29
- data/lib/countries/data/countries/PA.yaml +26 -27
- data/lib/countries/data/countries/PE.yaml +28 -29
- data/lib/countries/data/countries/PF.yaml +29 -30
- data/lib/countries/data/countries/PG.yaml +28 -29
- data/lib/countries/data/countries/PH.yaml +35 -36
- data/lib/countries/data/countries/PK.yaml +30 -31
- data/lib/countries/data/countries/PL.yaml +36 -37
- data/lib/countries/data/countries/PM.yaml +29 -30
- data/lib/countries/data/countries/PN.yaml +27 -28
- data/lib/countries/data/countries/PR.yaml +28 -29
- data/lib/countries/data/countries/PS.yaml +31 -32
- data/lib/countries/data/countries/PT.yaml +33 -34
- data/lib/countries/data/countries/PW.yaml +26 -27
- data/lib/countries/data/countries/PY.yaml +28 -29
- data/lib/countries/data/countries/QA.yaml +27 -28
- data/lib/countries/data/countries/RE.yaml +28 -29
- data/lib/countries/data/countries/RO.yaml +37 -38
- data/lib/countries/data/countries/RS.yaml +28 -29
- data/lib/countries/data/countries/RU.yaml +28 -29
- data/lib/countries/data/countries/RW.yaml +31 -32
- data/lib/countries/data/countries/SA.yaml +33 -29
- data/lib/countries/data/countries/SB.yaml +27 -28
- data/lib/countries/data/countries/SC.yaml +28 -29
- data/lib/countries/data/countries/SD.yaml +30 -31
- data/lib/countries/data/countries/SE.yaml +37 -38
- data/lib/countries/data/countries/SG.yaml +32 -33
- data/lib/countries/data/countries/SH.yaml +29 -30
- data/lib/countries/data/countries/SI.yaml +36 -37
- data/lib/countries/data/countries/SJ.yaml +29 -30
- data/lib/countries/data/countries/SK.yaml +36 -37
- data/lib/countries/data/countries/SL.yaml +25 -26
- data/lib/countries/data/countries/SM.yaml +28 -29
- data/lib/countries/data/countries/SN.yaml +27 -28
- data/lib/countries/data/countries/SO.yaml +30 -31
- data/lib/countries/data/countries/SR.yaml +26 -27
- data/lib/countries/data/countries/SS.yaml +29 -30
- data/lib/countries/data/countries/ST.yaml +27 -28
- data/lib/countries/data/countries/SV.yaml +27 -28
- data/lib/countries/data/countries/SX.yaml +28 -29
- data/lib/countries/data/countries/SY.yaml +27 -28
- data/lib/countries/data/countries/SZ.yaml +30 -31
- data/lib/countries/data/countries/TC.yaml +30 -31
- data/lib/countries/data/countries/TD.yaml +29 -30
- data/lib/countries/data/countries/TF.yaml +28 -29
- data/lib/countries/data/countries/TG.yaml +25 -26
- data/lib/countries/data/countries/TH.yaml +34 -35
- data/lib/countries/data/countries/TJ.yaml +30 -31
- data/lib/countries/data/countries/TK.yaml +27 -28
- data/lib/countries/data/countries/TL.yaml +27 -28
- data/lib/countries/data/countries/TM.yaml +30 -31
- data/lib/countries/data/countries/TN.yaml +30 -31
- data/lib/countries/data/countries/TO.yaml +29 -30
- data/lib/countries/data/countries/TR.yaml +28 -29
- data/lib/countries/data/countries/TT.yaml +28 -29
- data/lib/countries/data/countries/TV.yaml +25 -26
- data/lib/countries/data/countries/TW.yaml +28 -29
- data/lib/countries/data/countries/TZ.yaml +30 -31
- data/lib/countries/data/countries/UA.yaml +34 -35
- data/lib/countries/data/countries/UG.yaml +28 -29
- data/lib/countries/data/countries/UM.yaml +29 -30
- data/lib/countries/data/countries/US.yaml +29 -29
- data/lib/countries/data/countries/UY.yaml +27 -28
- data/lib/countries/data/countries/UZ.yaml +30 -31
- data/lib/countries/data/countries/VA.yaml +31 -32
- data/lib/countries/data/countries/VC.yaml +29 -30
- data/lib/countries/data/countries/VE.yaml +26 -27
- data/lib/countries/data/countries/VG.yaml +29 -30
- data/lib/countries/data/countries/VI.yaml +28 -29
- data/lib/countries/data/countries/VN.yaml +28 -29
- data/lib/countries/data/countries/VU.yaml +31 -32
- data/lib/countries/data/countries/WF.yaml +29 -30
- data/lib/countries/data/countries/WS.yaml +28 -29
- data/lib/countries/data/countries/YE.yaml +27 -28
- data/lib/countries/data/countries/YT.yaml +26 -27
- data/lib/countries/data/countries/ZA.yaml +39 -40
- data/lib/countries/data/countries/ZM.yaml +28 -29
- data/lib/countries/data/countries/ZW.yaml +31 -32
- data/lib/countries/data/subdivisions/CZ.yaml +115 -50
- data/lib/countries/data/subdivisions/KE.yaml +391 -503
- data/lib/countries/data/subdivisions/MK.yaml +3501 -5809
- data/lib/countries/data/subdivisions/SG.yaml +39 -109
- data/lib/countries/data/subdivisions/US.yaml +0 -42
- data/lib/countries/data/translation_corrections.yaml +20 -14
- data/lib/countries/global.rb +1 -3
- data/lib/countries/structure.rb +2 -5
- data/lib/countries/tasks/geocoding.rake +1 -1
- data/lib/countries/version.rb +1 -1
- data/spec/country_spec.rb +60 -56
- data/spec/data_spec.rb +9 -9
- metadata +3 -5
- data/lib/countries/data/subdivisions/FO.yaml +0 -85
- data/lib/countries/data/subdivisions/KY.yaml +0 -85
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 887715ef29fbd425dc5ed15b431c742a4fc65122768658232604ad34fade76e9
|
4
|
+
data.tar.gz: 21da6fd08a9ce1ff90cc3b3be66843811b1439c67d1bb4d17b39437b2e1c9ac8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ee49e9f7940118d1bf3ce03d9784b7e7d89c3f0d2f5c08b89548855447ebdd02d7be05b2ec52c3e3d03d753de2f73aae9db666fb5c6c4b989b6800e4bcc0c857
|
7
|
+
data.tar.gz: 3e0b5dcd574ce266e2d0243164d9370aad9aaf9a2c5a6572dae9b117e8c18a0b2e5e19b59382fac36516c744c5bf75fce4fbc08b9aa54c981360468ce8e18634
|
data/CHANGELOG.md
CHANGED
@@ -4,7 +4,46 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|
4
4
|
|
5
5
|
## [Future 5.0 release]
|
6
6
|
|
7
|
-
|
7
|
+
**Breaking Changes**
|
8
|
+
|
9
|
+
- Drop support for Ruby 2.5 and 2.6 [\#708](https://github.com/countries/countries/pull/708) ([pmor](https://github.com/pmor))
|
10
|
+
|
11
|
+
## [4.2.0](https://github.com/countries/countries/releases/tag/v4.2.0) (2022/01/11 11:04 +00:00)
|
12
|
+
|
13
|
+
**Deprecations**
|
14
|
+
|
15
|
+
- `Country#name`, `Country#names` and the finders using these attributes. See README ('Upgrading to 4.2 and 5.x')
|
16
|
+
- `latitude_dec` and `longitude_dec` attributes
|
17
|
+
|
18
|
+
**Merged pull requests:**
|
19
|
+
|
20
|
+
* Name methods refactor [\#717](https://github.com/countries/countries/pull/717) ([pmor](https://github.com/pmor))
|
21
|
+
* Remove non-ISO US subdivisions [\#720](https://github.com/countries/countries/pull/720) ([pmor](https://github.com/pmor))
|
22
|
+
* Update MK subdivisions [\#721](https://github.com/countries/countries/pull/721) ([pmor](https://github.com/pmor))
|
23
|
+
* Update Kenya subdivision data [\#722](https://github.com/countries/countries/pull/722) ([pmor](https://github.com/pmor))
|
24
|
+
* Fix French Southern Territories continent and region data [\#725](https://github.com/countries/countries/pull/725) ([pmor](https://github.com/pmor))
|
25
|
+
* Fix SG subdivision data [\#726](https://github.com/countries/countries/pull/726) ([pmor](https://github.com/pmor))
|
26
|
+
* Remove FO subdivisions [\#727](https://github.com/countries/countries/pull/727) ([pmor](https://github.com/pmor))
|
27
|
+
* JE and IM currencies should be GBP [\#728](https://github.com/countries/countries/pull/728) ([pmor](https://github.com/pmor))
|
28
|
+
* Fix US translations in nb and no locales [\#729](https://github.com/countries/countries/pull/729) ([pmor](https://github.com/pmor))
|
29
|
+
* Missing alternative names for GB and US [\#724](https://github.com/countries/countries/pull/#724) ([dima4p](https://github.com/dima4p))
|
30
|
+
* Deprecate latitude_dec and longitude_dec, delegate to latitude [\#723](https://github.com/countries/countries/pull/#723) ([pmor](https://github.com/pmor)
|
31
|
+
* add VAT for Israel and Saudi Arabia [\#730](https://github.com/countries/countries/pull/#723) ([Venca24](https://github.com/Venca24)
|
32
|
+
* Remove non-ISO KY subdivisions [\#731](https://github.com/countries/countries/pull/731) ([pmor](https://github.com/pmor))
|
33
|
+
* Fix duplicated translations of CZ-10 subdivision [\#733](https://github.com/countries/countries/pull/733) ([pmor](https://github.com/pmor))
|
34
|
+
|
35
|
+
**Closed issues:**
|
36
|
+
|
37
|
+
* Update Kenya subdivisions/states [\#318](https://github.com/countries/countries/issues/318)
|
38
|
+
* North Macedonia updates (2020-03-02) [\#674](https://github.com/countries/countries/issues/674)
|
39
|
+
* Singapore wrong subdivision codes (SG-SG-0x) [\#663](https://github.com/countries/countries/issues/663)
|
40
|
+
* Remove Faroe Islands subdivisions [\#606](https://github.com/countries/countries/issues/606)
|
41
|
+
* Jersey uses GBP instead of JEP currency [\#492](https://github.com/countries/countries/issues/492)
|
42
|
+
* USA in Norwegian translation should be 'USA' instead of 'De forente stater' [\#564](https://github.com/countries/countries/issues/564)
|
43
|
+
* Geographic bounds for UK includes all of Europe [\#535](https://github.com/countries/countries/issues/535)
|
44
|
+
* Wrong min_longitude for United States of America? [\#698](https://github.com/countries/countries/issues/698)
|
45
|
+
* Translations for CZ-10 are defined twice [\#732](https://github.com/countries/countries/issues/732)
|
46
|
+
|
8
47
|
|
9
48
|
## [4.1.3](https://github.com/countries/countries/releases/tag/v4.1.2) (2022/01/03 12:16 +00:00)
|
10
49
|
|
data/README.markdown
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
Countries is a collection of all sorts of useful information for every country in the ISO 3166 standard. It contains info for the following standards ISO3166-1 (countries), ISO3166-2 (states/subdivisions), ISO4217 (currency) and E.164 (phone numbers). I will add any country based data I can get access to. I hope this to be a repository for all country based information.
|
4
4
|
|
5
|
-
[![Gem Version](https://badge.fury.io/rb/countries.svg)](https://badge.fury.io/rb/countries) [![Tests](https://github.com/countries/countries/actions/workflows/tests.yml/badge.svg)](https://github.com/countries/countries/actions/workflows/tests.yml) [![Code Climate](https://codeclimate.com/github/
|
5
|
+
[![Gem Version](https://badge.fury.io/rb/countries.svg)](https://badge.fury.io/rb/countries) [![Tests](https://github.com/countries/countries/actions/workflows/tests.yml/badge.svg)](https://github.com/countries/countries/actions/workflows/tests.yml) [![Code Climate](https://codeclimate.com/github/countries/countries.svg)](https://codeclimate.com/github/countries/countries)
|
6
6
|
|
7
7
|
## Installation
|
8
8
|
|
@@ -48,20 +48,18 @@ To Use
|
|
48
48
|
gem 'countries', require: 'countries/global'
|
49
49
|
```
|
50
50
|
|
51
|
-
## Upgrading to
|
51
|
+
## Upgrading to 4.2 and 5.x
|
52
52
|
|
53
|
-
|
53
|
+
In release 4.2 the `#name` attribute was deprecated in favour of `#iso_short_name` and we added the `#iso_long_name` attribute, to make it clear that these attributes use the ISO3166 names, and are not the "common names" most people might expect, eg: The ISO name for "United Kingdom" is "United Kingdom of Great Britain and Northern Ireland", but if you're building a dropdown box to select a country, you're likely expecting to see "United Kingdom" instead.
|
54
54
|
|
55
|
-
|
55
|
+
"Common names" in English have been available in the translation data, via `#translation('en')`. As of release 4.2, a shortcut method has been added for simplicity, `#common_name`, which delegates to `#translation('en')`.
|
56
56
|
|
57
|
-
|
58
|
-
|
59
|
-
|
57
|
+
For additional clarity, the `#names` method, which was an alias to `#unofficial_names` has also been deprecated, together with the finder methods that use `name` or `names` attributes.
|
58
|
+
|
59
|
+
The `#name` and `#names` attributes, and corresponding finder methods will be removed in 5.0.
|
60
|
+
|
61
|
+
For translated country names, we use data from [pkg-isocodes](https://salsa.debian.org/iso-codes-team/iso-codes), via the [i18n_data](https://github.com/grosser/i18n_data) gem, and these generally correspond to the expected "common names". These names and the corresponding methods have not been changed.
|
60
62
|
|
61
|
-
has become
|
62
|
-
```ruby
|
63
|
-
gem 'countries', require: 'countries/global'
|
64
|
-
```
|
65
63
|
|
66
64
|
## Selective Loading of Locales
|
67
65
|
|
@@ -89,7 +87,7 @@ end
|
|
89
87
|
You can lookup a country or an array of countries using any of the data attributes via the find\_country\_by_*attribute* dynamic methods:
|
90
88
|
|
91
89
|
```ruby
|
92
|
-
c = ISO3166::Country.
|
90
|
+
c = ISO3166::Country.find_country_by_iso_short_name('united states')
|
93
91
|
h = ISO3166::Country.find_all_by(:translated_names, 'França')
|
94
92
|
list = ISO3166::Country.find_all_countries_by_region('Americas')
|
95
93
|
c = ISO3166::Country.find_country_by_alpha3('can')
|
@@ -98,6 +96,9 @@ c = ISO3166::Country.find_country_by_alpha3('can')
|
|
98
96
|
For a list of available attributes please see ISO3166::DEFAULT_COUNTRY_HASH.
|
99
97
|
Note: searches are *case insensitive and ignore accents*.
|
100
98
|
|
99
|
+
_Please note that `find_by_name`, `find_by_names`, `find_*_by_name` and `find_*_by_names` methods are deprecated and will be removed in 5.0. See [Upgrading to 4.2 and 5.x](#upgrading-to-4-2-and-5-x) above_
|
100
|
+
|
101
|
+
|
101
102
|
## Country Info
|
102
103
|
|
103
104
|
### Identification Codes
|
@@ -112,7 +113,9 @@ c.gec # => "US"
|
|
112
113
|
### Names & Translations
|
113
114
|
|
114
115
|
```ruby
|
115
|
-
c.
|
116
|
+
c.iso_long_name # => "The United States of America"
|
117
|
+
c.iso_short_name # => "United States of America"
|
118
|
+
c.common_name # => "United States" (This is a shortcut for c.translations('en'))
|
116
119
|
c.unofficial_names # => ["United States of America", "Vereinigte Staaten von Amerika", "États-Unis", "Estados Unidos"]
|
117
120
|
|
118
121
|
# Get the names for a country translated to its local languages
|
@@ -128,6 +131,9 @@ ISO3166::Country.translations # {"DE"=>"Germany",...}
|
|
128
131
|
ISO3166::Country.translations('DE') # {"DE"=>"Deutschland",...}
|
129
132
|
ISO3166::Country.all_translated # ['Germany', ...]
|
130
133
|
ISO3166::Country.all_translated('DE') # ['Deutschland', ...]
|
134
|
+
|
135
|
+
# Nationality
|
136
|
+
c.nationality # => "American"
|
131
137
|
```
|
132
138
|
|
133
139
|
### Subdivisions & States
|
@@ -140,15 +146,16 @@ c.states # => {"CO" => {"name" => "Colorado", "names" => "Colorado"}, ... }
|
|
140
146
|
### Location
|
141
147
|
|
142
148
|
```ruby
|
143
|
-
c.latitude # => "
|
144
|
-
c.longitude # => "
|
145
|
-
c.latitude_dec # => 39.44325637817383
|
146
|
-
c.longitude_dec # => -98.95733642578125
|
149
|
+
c.latitude # => "37.09024"
|
150
|
+
c.longitude # => "-95.712891"
|
147
151
|
|
152
|
+
c.world_region # => "AMER"
|
148
153
|
c.region # => "Americas"
|
149
154
|
c.subregion # => "Northern America"
|
150
155
|
```
|
151
156
|
|
157
|
+
Please note that `latitude_dec` and `longitude_dec` will be deprecated on release 4.2 and deleted in 5.0. These attribues have been redundant for several years, since the `latitude` and `longitude` fields have been switched decimal coordinates.
|
158
|
+
|
152
159
|
### Timezones **(optional)**
|
153
160
|
|
154
161
|
Add `tzinfo` to your Gemfile and ensure it's required, Countries will not do this for you.
|
@@ -180,6 +187,8 @@ c.min_longitude # => '45'
|
|
180
187
|
c.min_latitude # => '22.166667'
|
181
188
|
c.max_longitude # => '58'
|
182
189
|
c.max_latitude # => '26.133333'
|
190
|
+
|
191
|
+
c.bounds #> {"northeast"=>{"lat"=>22.166667, "lng"=>58}, "southwest"=>{"lat"=>26.133333, "lng"=>45}}
|
183
192
|
```
|
184
193
|
|
185
194
|
### European Union Membership
|
@@ -204,7 +213,7 @@ c.in_esm? # => false
|
|
204
213
|
### Plucking multiple attributes
|
205
214
|
|
206
215
|
```ruby
|
207
|
-
ISO3166::Country.pluck(:alpha2, :
|
216
|
+
ISO3166::Country.pluck(:alpha2, :iso_short_name) # => [["AD", "Andorra"], ["AE", "United Arab Emirates"], ...
|
208
217
|
```
|
209
218
|
|
210
219
|
## Currencies
|
@@ -221,9 +230,7 @@ Please note that it requires you to add "money" dependency to your gemfile.
|
|
221
230
|
gem "money", "~> 6.9"
|
222
231
|
```
|
223
232
|
|
224
|
-
|
225
|
-
|
226
|
-
Countries now uses the [Money](https://github.com/RubyMoney/money) gem. What this means is you now get back a Money::Currency object that gives you access to all the currency information.
|
233
|
+
Countries now uses the [Money](https://github.com/RubyMoney/money) gem. What this means is you now get back a `Money::Currency` object that gives you access to all the currency information.
|
227
234
|
|
228
235
|
```ruby
|
229
236
|
c = ISO3166::Country['us']
|
@@ -249,14 +256,14 @@ Any country registered this way will have its data available for searching etc..
|
|
249
256
|
```ruby
|
250
257
|
ISO3166::Data.register(
|
251
258
|
alpha2: 'LOL',
|
252
|
-
|
259
|
+
iso_short_name: 'Happy Country',
|
253
260
|
translations: {
|
254
261
|
'en' => 'Happy Country',
|
255
262
|
'de' => 'glückliches Land'
|
256
263
|
}
|
257
264
|
)
|
258
265
|
|
259
|
-
ISO3166::Country.new('LOL').
|
266
|
+
ISO3166::Country.new('LOL').iso_short_name == 'Happy Country'
|
260
267
|
```
|
261
268
|
|
262
269
|
## Mongoid
|
@@ -275,33 +282,33 @@ Searching:
|
|
275
282
|
|
276
283
|
```ruby
|
277
284
|
# By alpha2
|
278
|
-
|
279
|
-
|
285
|
+
spanish_things = Things.where(country: 'ES')
|
286
|
+
spanish_things.first.country.iso_short_name # => "Spain"
|
280
287
|
|
281
288
|
# By object
|
282
|
-
|
283
|
-
|
289
|
+
spanish_things = Things.where(country: Country.find_by_iso_short_name('Spain')[1])
|
290
|
+
spanish_things.first.country.iso_short_name # => "Spain"
|
284
291
|
```
|
285
292
|
|
286
293
|
Saving:
|
287
294
|
|
288
295
|
```ruby
|
289
296
|
# By alpha2
|
290
|
-
|
291
|
-
|
292
|
-
|
297
|
+
spanish_things = Thing.new(country: 'ES')
|
298
|
+
spanish_things.save!
|
299
|
+
spanish_things.country.iso_short_name # => "Spain"
|
293
300
|
|
294
301
|
# By object
|
295
|
-
|
296
|
-
|
297
|
-
|
302
|
+
spanish_things = Thing.new(country: Country.find_by_iso_short_name('Spain')[1])
|
303
|
+
spanish_things.save!
|
304
|
+
spanish_things.country.iso_short_name # => "Spain"
|
298
305
|
```
|
299
306
|
|
300
307
|
Note that the database stores only the alpha2 code and rebuilds the object when queried. To return the country name by default you can override the reader method in your model:
|
301
308
|
|
302
309
|
```ruby
|
303
310
|
def country
|
304
|
-
super.
|
311
|
+
super.iso_short_name
|
305
312
|
end
|
306
313
|
```
|
307
314
|
|
@@ -318,7 +325,7 @@ c.emoji_flag # => "🇲🇾"
|
|
318
325
|
|
319
326
|
Any additions should be directed upstream to [pkg-isocodes](https://salsa.debian.org/iso-codes-team/iso-codes)
|
320
327
|
|
321
|
-
|
328
|
+
Localized country name data is sourced from https://github.com/grosser/i18n_data (which is based on https://salsa.debian.org/iso-codes-team/iso-codes/). Issues regarding localized country names can be reported to https://github.com/grosser/i18n_data/issues or https://salsa.debian.org/iso-codes-team/iso-codes/issues
|
322
329
|
If you need to correct an upstream translation please add it to the lib/countries/data/translations_corrections.yaml
|
323
330
|
|
324
331
|
```
|
data/Rakefile
CHANGED
@@ -19,36 +19,6 @@ end
|
|
19
19
|
|
20
20
|
task default: [:spec]
|
21
21
|
|
22
|
-
task :update_yaml_structure do
|
23
|
-
|
24
|
-
d = Dir['lib/countries/data/subdivisions/*.yaml']
|
25
|
-
d.each do |file|
|
26
|
-
puts "checking : #{file}"
|
27
|
-
data = YAML.load_file(file)
|
28
|
-
|
29
|
-
data = data.each_with_object({}) do |(k, subd), a|
|
30
|
-
a[k] ||= {}
|
31
|
-
a[k]['unofficial_names'] = subd.delete('names')
|
32
|
-
a[k]['translations'] = { 'en' => subd['name'] }
|
33
|
-
a[k]['geo'] = {
|
34
|
-
'latitude' => subd.delete('latitude'),
|
35
|
-
'longitude' => subd.delete('longitude'),
|
36
|
-
'min_latitude' => subd.delete('min_latitude'),
|
37
|
-
'min_longitude' => subd.delete('min_longitude'),
|
38
|
-
'max_latitude' => subd.delete('max_latitude'),
|
39
|
-
'max_longitude' => subd.delete('max_longitude')
|
40
|
-
}
|
41
|
-
|
42
|
-
a[k] = a[k].merge(subd)
|
43
|
-
end
|
44
|
-
File.open(file, 'w') { |f| f.write data.to_yaml }
|
45
|
-
begin
|
46
|
-
rescue
|
47
|
-
puts "failed to read #{file}: #{$ERROR_INFO}"
|
48
|
-
end
|
49
|
-
end
|
50
|
-
end
|
51
|
-
|
52
22
|
desc 'Update CLDR subdivison data set'
|
53
23
|
task :update_cldr_subdivison_data do
|
54
24
|
require_relative './lib/countries/sources'
|
@@ -61,7 +31,7 @@ task :update_cache do
|
|
61
31
|
require 'yaml'
|
62
32
|
require 'i18n_data'
|
63
33
|
|
64
|
-
codes = Dir['lib/countries/data/countries/*.yaml'].map { |x| File.basename(x, File.extname(x)) }.uniq
|
34
|
+
codes = Dir['lib/countries/data/countries/*.yaml'].map { |x| File.basename(x, File.extname(x)) }.uniq.sort
|
65
35
|
data = {}
|
66
36
|
|
67
37
|
corrections = YAML.load_file(File.join(File.dirname(__FILE__), 'lib', 'countries', 'data', 'translation_corrections.yaml')) || {}
|
@@ -91,3 +61,25 @@ task :update_cache do
|
|
91
61
|
|
92
62
|
File.open(File.join(File.dirname(__FILE__), 'lib', 'countries', 'cache', 'countries.json'), 'wb') { |f| f.write(data.to_json) }
|
93
63
|
end
|
64
|
+
|
65
|
+
# Temporary task to update YAML file structure with iso_long_name and iso_short_name attributes
|
66
|
+
task :update_iso_names do
|
67
|
+
require 'csv'
|
68
|
+
isodata = CSV.read 'isonames.csv', headers: true
|
69
|
+
|
70
|
+
d = Dir['lib/countries/data/countries/*.yaml']
|
71
|
+
d.each do |file|
|
72
|
+
puts "checking : #{file}"
|
73
|
+
data = YAML.load_file(file)
|
74
|
+
|
75
|
+
country_code = data.keys.first
|
76
|
+
iso_country = isodata.find {|c| c['cc'] == country_code}
|
77
|
+
|
78
|
+
data.values.first['iso_long_name'] = iso_country['iso_full_name']
|
79
|
+
data.values.first['iso_short_name'] = data.values.first.delete('name')
|
80
|
+
|
81
|
+
data[country_code.upcase] = data[country_code.upcase].sort.to_h
|
82
|
+
|
83
|
+
File.open(file, 'w') { |f| f.write data.to_yaml }
|
84
|
+
end
|
85
|
+
end
|