worldwide 1.14.4 → 1.15.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +11 -0
- data/Gemfile.lock +1 -1
- data/data/regions/AC.yml +1 -1
- data/data/regions/BB.yml +1 -1
- data/data/regions/BF.yml +1 -1
- data/data/regions/BL.yml +2 -2
- data/data/regions/CA.yml +1 -1
- data/data/regions/CR.yml +1 -1
- data/data/regions/GB.yml +1 -1
- data/data/regions/IE.yml +0 -1
- data/data/regions/IN.yml +1 -1
- data/data/regions/JE.yml +2 -2
- data/data/regions/JP.yml +2 -2
- data/data/regions/KH.yml +1 -1
- data/data/regions/KR.yml +1 -1
- data/data/regions/MM.yml +1 -1
- data/data/regions/MQ.yml +2 -2
- data/data/regions/MS.yml +1 -1
- data/data/regions/MU.yml +1 -1
- data/data/regions/MW.yml +1 -1
- data/data/regions/MY.yml +1 -0
- data/data/regions/NL.yml +1 -1
- data/data/regions/NZ.yml +1 -1
- data/data/regions/PH.yml +1 -1
- data/data/regions/PM.yml +1 -1
- data/data/regions/PY.yml +1 -1
- data/data/regions/SA.yml +1 -1
- data/data/regions/SG.yml +1 -0
- data/data/regions/SS.yml +1 -1
- data/data/regions/TA.yml +1 -1
- data/data/regions/UA.yml +1 -1
- data/data/regions/US.yml +1 -1
- data/data/regions/UZ.yml +1 -1
- data/data/regions/XK.yml +1 -1
- data/lib/worldwide/region.rb +17 -3
- data/lib/worldwide/regions_loader.rb +1 -0
- data/lib/worldwide/version.rb +1 -1
- metadata +3 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c3cf97e1bcdf0999cdec177c2d6627b190ed8d8cd55598a676dee463f1cf86ff
|
4
|
+
data.tar.gz: a7f767ba103009a596ca24c969ed7459e0a6f3235d2cbd75a137cd4d2afdfe29
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 85217f6eae5ff93bffa23de787d6131e22daa5614a61560c115d3b45c701b70e905543bc7385a3b20d144003cdae4e93eddb72a3db026927cc12cd4eff59576a
|
7
|
+
data.tar.gz: ac164a247f5eb618b189ead2912d427069f33d98911e45317919ce1fd127835bf432192480a77f386c6c7809428d1a983514a9f2c4acda35dbca3f96d2c3a9d1
|
data/CHANGELOG.md
CHANGED
@@ -28,8 +28,19 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
28
28
|
## [Unreleased]
|
29
29
|
|
30
30
|
Nil.
|
31
|
+
|
32
|
+
---
|
33
|
+
|
34
|
+
## [1.15.1] - 2024-12-20
|
35
|
+
- Set Malaysia and Singapore as tax_inclusive [#323](https://github.com/Shopify/worldwide/pull/323)
|
36
|
+
- Update or correct example zips [#324](https://github.com/Shopify/worldwide/pull/324)
|
37
|
+
- Correct zip regex patterns and make them Javascript-compatible [#325](https://github.com/Shopify/worldwide/pull/325)
|
31
38
|
---
|
32
39
|
|
40
|
+
## [1.15.0] - 2024-12-16
|
41
|
+
- Add zip requirement and tax inclusive methods to country regions [#320](https://github.com/Shopify/worldwide/pull/320)
|
42
|
+
- Set Ireland (IE) zip as a required address field [#321](https://github.com/Shopify/worldwide/pull/321)
|
43
|
+
|
33
44
|
## [1.14.4] - 2024-12-12
|
34
45
|
- Speed up configure_i18n by precomputing paths and indexing descendants [#316](https://github.com/Shopify/worldwide/pull/316)
|
35
46
|
- Update BV phone number prefix to 47 (Norway) [#318](https://github.com/Shopify/worldwide/pull/318)
|
data/Gemfile.lock
CHANGED
data/data/regions/AC.yml
CHANGED
data/data/regions/BB.yml
CHANGED
data/data/regions/BF.yml
CHANGED
data/data/regions/BL.yml
CHANGED
@@ -11,8 +11,8 @@ unit_system: metric
|
|
11
11
|
tags:
|
12
12
|
- EU-OCT
|
13
13
|
currency: EUR
|
14
|
-
zip_example: '
|
15
|
-
zip_regex: "^(BL-?)?97133$"
|
14
|
+
zip_example: '97091'
|
15
|
+
zip_regex: "^(BL-?)?(97133|9709\\d)$"
|
16
16
|
phone_number_prefix: 590
|
17
17
|
format:
|
18
18
|
edit: "{country}_{firstName}{lastName}_{company}_{address1}_{address2}_{zip}{city}_{phone}"
|
data/data/regions/CA.yml
CHANGED
@@ -5,7 +5,7 @@ tax: 0.05
|
|
5
5
|
currency: CAD
|
6
6
|
unit_system: metric
|
7
7
|
tax_name: GST
|
8
|
-
zip_regex: "
|
8
|
+
zip_regex: "^[A-Za-z]\\d[A-Za-z]\\s*\\d[A-Za-z]\\d$"
|
9
9
|
partial_zip_regex: "^[A-Z][0-9][A-Z]$"
|
10
10
|
group: North American Countries
|
11
11
|
group_name: North America
|
data/data/regions/CR.yml
CHANGED
data/data/regions/GB.yml
CHANGED
@@ -11,7 +11,7 @@ ignore_zones: true
|
|
11
11
|
group: European Countries
|
12
12
|
group_name: Europe
|
13
13
|
zip_label: Postcode
|
14
|
-
zip_regex:
|
14
|
+
zip_regex: "^[A-Za-z]{1,2}[\\d]{1,2}(?:[A-Za-z])?\\s?[\\d][A-Za-z]{2}$"
|
15
15
|
partial_zip_regex: "^[A-Z]{1,2}[0-9]{1,2}[A-Z]?$"
|
16
16
|
zip_example: SE22 8DL
|
17
17
|
phone_number_prefix: 44
|
data/data/regions/IE.yml
CHANGED
data/data/regions/IN.yml
CHANGED
data/data/regions/JE.yml
CHANGED
@@ -9,8 +9,8 @@ tax_inclusive: true
|
|
9
9
|
group: European Countries
|
10
10
|
group_name: Europe
|
11
11
|
zip_example: JE1 1AA
|
12
|
-
zip_regex: "^JE
|
13
|
-
partial_zip_regex: "^JE
|
12
|
+
zip_regex: "^JE\\d{1,2} {0,2}\\d[A-Z]{2}$"
|
13
|
+
partial_zip_regex: "^JE\\d{1,2}$"
|
14
14
|
phone_number_prefix: 44
|
15
15
|
format:
|
16
16
|
edit: "{country}_{firstName}{lastName}_{company}_{address1}_{address2}_{city}{zip}_{phone}"
|
data/data/regions/JP.yml
CHANGED
@@ -9,8 +9,8 @@ tax_inclusive: true
|
|
9
9
|
group: Asian Countries
|
10
10
|
group_name: Asia
|
11
11
|
zip_example: 154-0023
|
12
|
-
zip_regex: "
|
13
|
-
partial_zip_regex: "
|
12
|
+
zip_regex: "^〒?(\\d{7}|[0-9|0-9]{3}(-|ー)[0-9|0-9]{4})$"
|
13
|
+
partial_zip_regex: "^〒?([0-9|0-9]{0,3})(-|ー?)([0-9|0-9]{0,4})$"
|
14
14
|
phone_number_prefix: 81
|
15
15
|
building_number_required: true
|
16
16
|
building_number_may_be_in_address2: true
|
data/data/regions/KH.yml
CHANGED
data/data/regions/KR.yml
CHANGED
data/data/regions/MM.yml
CHANGED
data/data/regions/MQ.yml
CHANGED
@@ -13,14 +13,14 @@ group_name: Central America
|
|
13
13
|
tags:
|
14
14
|
- EU-OMR
|
15
15
|
zip_example: '97220'
|
16
|
-
zip_regex: "
|
16
|
+
zip_regex: "^(MQ-?)?((972)\\d{2,2})$"
|
17
17
|
phone_number_prefix: 596
|
18
18
|
format:
|
19
19
|
edit: "{country}_{firstName}{lastName}_{company}_{address1}_{address2}_{zip}{city}_{phone}"
|
20
20
|
show: "{firstName} {lastName}_{company}_{address1}_{address2}_{zip} {city}_{country}_{phone}"
|
21
21
|
# The only flag with official standing in Martinique is the French flag.
|
22
22
|
# The emoji flag sequence MQ renders as the "snake flag", which is resented by some as a symbol
|
23
|
-
# of the slave trade. A new local flag, the Iséité flag, was brought into use in 2019, but
|
23
|
+
# of the slave trade. A new local flag, the Iséité flag, was brought into use in 2019, but
|
24
24
|
# revoked in 2021. At this point, the safest course of action seems to be to use the French flag.
|
25
25
|
# Sources: https://en.wikipedia.org/wiki/Flag_of_Martinique
|
26
26
|
# https://www.rci.fm/martinique/infos/Justice/La-justice-annule-lutilisation-du-drapeau-et-de-lhymne-choisis-en-2019-par-la-CTM#
|
data/data/regions/MS.yml
CHANGED
data/data/regions/MU.yml
CHANGED
data/data/regions/MW.yml
CHANGED
data/data/regions/MY.yml
CHANGED
data/data/regions/NL.yml
CHANGED
data/data/regions/NZ.yml
CHANGED
data/data/regions/PH.yml
CHANGED
data/data/regions/PM.yml
CHANGED
@@ -12,7 +12,7 @@ tags:
|
|
12
12
|
- EU-OCT
|
13
13
|
zip_example: '97500'
|
14
14
|
phone_number_prefix: 508
|
15
|
-
zip_regex: "
|
15
|
+
zip_regex: "^(PM-?)?((975)\\d{2,2})$"
|
16
16
|
format:
|
17
17
|
edit: "{country}_{firstName}{lastName}_{company}_{address1}_{address2}_{zip}{city}_{phone}"
|
18
18
|
show: "{firstName} {lastName}_{company}_{address1}_{address2}_{zip} {city}_{country}_{phone}"
|
data/data/regions/PY.yml
CHANGED
data/data/regions/SA.yml
CHANGED
data/data/regions/SG.yml
CHANGED
data/data/regions/SS.yml
CHANGED
@@ -11,7 +11,7 @@ group_name: Africa
|
|
11
11
|
# It is possible that some people may still be using old Sudan postcodes for addresses in South Sudan.
|
12
12
|
# For that reason, we permit the entry of a postal code, but it is optional.
|
13
13
|
zip_regex: "^\\d{5}$"
|
14
|
-
zip_example: 81111 # Juba
|
14
|
+
zip_example: "81111" # Juba
|
15
15
|
zip_requirement: optional
|
16
16
|
phone_number_prefix: 211
|
17
17
|
format:
|
data/data/regions/TA.yml
CHANGED
@@ -9,7 +9,7 @@ unit_system: metric
|
|
9
9
|
# Source: https://en.wikipedia.org/wiki/Saint_Helena_pound
|
10
10
|
currency: GBP
|
11
11
|
zip_example: TDCU 1ZZ
|
12
|
-
zip_regex: "
|
12
|
+
zip_regex: "^[Tt][Dd][Cc][Uu]\\s*1[Zz][Zz]$"
|
13
13
|
phone_number_prefix: 2908
|
14
14
|
zip_autofill_enabled: true
|
15
15
|
autofill_city_enabled: true
|
data/data/regions/UA.yml
CHANGED
data/data/regions/US.yml
CHANGED
@@ -10,7 +10,7 @@ group_name: North America
|
|
10
10
|
name_alternates:
|
11
11
|
- United States of America
|
12
12
|
zip_label: Zip code
|
13
|
-
zip_regex: "
|
13
|
+
zip_regex: "^\\d{5}(-\\d{4})?$"
|
14
14
|
zip_example: '90210'
|
15
15
|
phone_number_prefix: 1
|
16
16
|
building_number_required: true
|
data/data/regions/UZ.yml
CHANGED
@@ -7,7 +7,7 @@ unit_system: metric
|
|
7
7
|
tax_name: VAT
|
8
8
|
group: Asian Countries
|
9
9
|
group_name: Asia
|
10
|
-
zip_example: '
|
10
|
+
zip_example: '140100'
|
11
11
|
zip_regex: "^(100|11[0-2]|12[01]|13[01]|14[01]|15[01]|16[01]|17[01]|18[01]|19[01]|20[01]|21[01]|22[01]|23[01])\\d{3}$"
|
12
12
|
zip_requirement: optional
|
13
13
|
phone_number_prefix: 998
|
data/data/regions/XK.yml
CHANGED
data/lib/worldwide/region.rb
CHANGED
@@ -163,6 +163,9 @@ module Worldwide
|
|
163
163
|
# Note that this should really be translated; showing this untranslated name to users is a bad idea.
|
164
164
|
attr_reader :tax_name
|
165
165
|
|
166
|
+
# Whether the region uses tax-inclusive pricing.
|
167
|
+
attr_accessor :tax_inclusive
|
168
|
+
|
166
169
|
# "generic" VAT tax rate on "most" goods
|
167
170
|
attr_reader :tax_rate
|
168
171
|
|
@@ -198,7 +201,7 @@ module Worldwide
|
|
198
201
|
attr_accessor :zip_example
|
199
202
|
|
200
203
|
# Is a zip value required in this region? (Possible values: "optional", "recommended", "required")
|
201
|
-
|
204
|
+
attr_writer :zip_requirement
|
202
205
|
|
203
206
|
# A list of character sequences with which a postal code in this region may start.
|
204
207
|
attr_accessor :zip_prefixes
|
@@ -276,6 +279,7 @@ module Worldwide
|
|
276
279
|
@partial_zip_regex = nil
|
277
280
|
@phone_number_prefix = nil
|
278
281
|
@tags = []
|
282
|
+
@tax_inclusive = false
|
279
283
|
@timezone = nil
|
280
284
|
@timezones = {}
|
281
285
|
@unit_system = nil
|
@@ -435,13 +439,23 @@ module Worldwide
|
|
435
439
|
|
436
440
|
# is a postal code required for this region?
|
437
441
|
def zip_required?
|
438
|
-
if zip_requirement.nil?
|
442
|
+
if @zip_requirement.nil?
|
439
443
|
!zip_regex.nil?
|
440
444
|
else
|
441
|
-
REQUIRED == zip_requirement
|
445
|
+
REQUIRED == @zip_requirement
|
442
446
|
end
|
443
447
|
end
|
444
448
|
|
449
|
+
# Returns whether (and how firmly) we require a value in the zip field
|
450
|
+
# Possible returns:
|
451
|
+
# - "required" means a value must be supplied
|
452
|
+
# - "recommended" means a value is optional, but we recommend providing one
|
453
|
+
# - "optional" means a value is optional, and we say it is optional
|
454
|
+
# @return [String]
|
455
|
+
def zip_requirement
|
456
|
+
@zip_requirement || (zip_required? ? REQUIRED : OPTIONAL)
|
457
|
+
end
|
458
|
+
|
445
459
|
# is a neighborhood required for this region?
|
446
460
|
def neighborhood_required?
|
447
461
|
additional_field_required?("neighborhood")
|
@@ -114,6 +114,7 @@ module Worldwide
|
|
114
114
|
region.partial_zip_regex = spec["partial_zip_regex"]
|
115
115
|
region.phone_number_prefix = spec["phone_number_prefix"]
|
116
116
|
region.tags = spec["tags"] || []
|
117
|
+
region.tax_inclusive = spec["tax_inclusive"] || false
|
117
118
|
region.timezone = spec["timezone"]
|
118
119
|
region.timezones = spec["timezones"] || {}
|
119
120
|
region.week_start_day = spec["week_start_day"] || "sunday"
|
data/lib/worldwide/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: worldwide
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.15.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Shopify
|
8
|
-
autorequire:
|
9
8
|
bindir: exe
|
10
9
|
cert_chain: []
|
11
|
-
date:
|
10
|
+
date: 2025-01-02 00:00:00.000000000 Z
|
12
11
|
dependencies:
|
13
12
|
- !ruby/object:Gem::Dependency
|
14
13
|
name: activesupport
|
@@ -8494,7 +8493,6 @@ licenses: []
|
|
8494
8493
|
metadata:
|
8495
8494
|
allowed_push_host: https://rubygems.org/
|
8496
8495
|
changelog_uri: https://github.com/Shopify/worldwide/blob/main/CHANGELOG.md
|
8497
|
-
post_install_message:
|
8498
8496
|
rdoc_options: []
|
8499
8497
|
require_paths:
|
8500
8498
|
- lib
|
@@ -8509,8 +8507,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
8509
8507
|
- !ruby/object:Gem::Version
|
8510
8508
|
version: '0'
|
8511
8509
|
requirements: []
|
8512
|
-
rubygems_version: 3.
|
8513
|
-
signing_key:
|
8510
|
+
rubygems_version: 3.6.2
|
8514
8511
|
specification_version: 4
|
8515
8512
|
summary: Internationalization and localization APIs
|
8516
8513
|
test_files: []
|