telephone_number 1.4.8 → 1.4.12
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +0 -1
- data/CHANGELOG.md +11 -0
- data/README.md +11 -5
- data/data/geocoding/de/49.dat +0 -0
- data/data/geocoding/de/49.txt +3 -3
- data/data/geocoding/en/1.dat +0 -0
- data/data/geocoding/en/1.txt +10 -1
- data/data/geocoding/en/212.dat +0 -0
- data/data/geocoding/en/212.txt +9 -1
- data/data/geocoding/en/225.dat +0 -0
- data/data/geocoding/en/225.txt +22 -22
- data/data/geocoding/en/267.dat +0 -0
- data/data/geocoding/en/267.txt +1 -0
- data/data/geocoding/en/380.dat +0 -0
- data/data/geocoding/en/380.txt +1 -1
- data/data/geocoding/en/44.dat +0 -0
- data/data/geocoding/en/44.txt +6 -1
- data/data/geocoding/en/49.dat +0 -0
- data/data/geocoding/en/49.txt +3 -3
- data/data/geocoding/en/504.dat +0 -0
- data/data/geocoding/en/504.txt +2 -1
- data/data/geocoding/en/598.dat +0 -0
- data/data/geocoding/en/598.txt +9 -1
- data/data/geocoding/en/61.dat +0 -0
- data/data/geocoding/en/61.txt +39 -9
- data/data/geocoding/en/678.dat +0 -0
- data/data/geocoding/en/678.txt +1 -1
- data/data/geocoding/en/81.dat +0 -0
- data/data/geocoding/en/81.txt +9 -1
- data/data/geocoding/en/961.dat +0 -0
- data/data/geocoding/en/961.txt +23 -0
- data/data/geocoding/es/52.dat +0 -0
- data/data/geocoding/es/52.txt +16 -16
- data/data/geocoding/fr/212.dat +0 -0
- data/data/geocoding/fr/212.txt +9 -1
- data/data/geocoding/fr/225.dat +0 -0
- data/data/geocoding/fr/225.txt +22 -22
- data/data/geocoding/ja/81.dat +0 -0
- data/data/geocoding/ja/81.txt +9 -1
- data/data/telephone_number_data_file.dat +0 -0
- data/data/telephone_number_data_file.xml +1687 -1096
- data/data/timezones/map_data.dat +0 -0
- data/data/timezones/map_data.txt +76 -20
- data/lib/telephone_number.rb +0 -1
- data/lib/telephone_number/country.rb +22 -9
- data/lib/telephone_number/version.rb +1 -1
- data/telephone_number.gemspec +1 -0
- metadata +6 -4
- data/lib/utilities/hash.rb +0 -47
data/data/timezones/map_data.dat
CHANGED
Binary file
|
data/data/timezones/map_data.txt
CHANGED
@@ -15,7 +15,7 @@
|
|
15
15
|
# Generated from:
|
16
16
|
# Internal statistics data (2018-06-12).
|
17
17
|
|
18
|
-
1|America/Adak&America/Anchorage&America/Anguilla&America/Antigua&America/Barbados&America/Boise&America/Cayman&America/Chicago&America/Denver&America/Dominica&America/Edmonton&America/Fort_Nelson&America/Grand_Turk&America/Grenada&America/Halifax&America/Jamaica&America/Juneau&America/Los_Angeles&America/Lower_Princes&America/Montserrat&America/Nassau&America/New_York&America/North_Dakota/Center&America/Phoenix&America/Port_of_Spain&America/Puerto_Rico&America/Santo_Domingo&America/St_Johns&America/St_Kitts&America/St_Lucia&America/St_Thomas&America/St_Vincent&America/Toronto&America/Tortola&America/Vancouver&America/Winnipeg&Atlantic/Bermuda&Pacific/Guam&Pacific/Honolulu&Pacific/Pago_Pago&Pacific/Saipan
|
18
|
+
1|America/Adak&America/Anchorage&America/Anguilla&America/Antigua&America/Barbados&America/Boise&America/Cayman&America/Chicago&America/Denver&America/Dominica&America/Edmonton&America/Fort_Nelson&America/Grand_Turk&America/Grenada&America/Halifax&America/Jamaica&America/Juneau&America/Los_Angeles&America/Lower_Princes&America/Montserrat&America/Nassau&America/New_York&America/North_Dakota/Center&America/Phoenix&America/Port_of_Spain&America/Puerto_Rico&America/Regina&America/Santo_Domingo&America/St_Johns&America/St_Kitts&America/St_Lucia&America/St_Thomas&America/St_Vincent&America/Toronto&America/Tortola&America/Vancouver&America/Winnipeg&Atlantic/Bermuda&Pacific/Guam&Pacific/Honolulu&Pacific/Pago_Pago&Pacific/Saipan
|
19
19
|
1201|America/New_York
|
20
20
|
1202|America/New_York
|
21
21
|
1203|America/New_York
|
@@ -641,7 +641,7 @@
|
|
641
641
|
1303|America/Denver
|
642
642
|
1304|America/New_York
|
643
643
|
1305|America/New_York
|
644
|
-
1306|America/
|
644
|
+
1306|America/Regina
|
645
645
|
1307|America/Denver
|
646
646
|
1308|America/Chicago
|
647
647
|
1308235|America/Denver
|
@@ -681,6 +681,7 @@
|
|
681
681
|
1321|America/New_York
|
682
682
|
1323|America/Los_Angeles
|
683
683
|
1325|America/Chicago
|
684
|
+
1326|America/New_York
|
684
685
|
1330|America/New_York
|
685
686
|
1331|America/Chicago
|
686
687
|
1332|America/New_York
|
@@ -701,6 +702,7 @@
|
|
701
702
|
1364|America/New_York
|
702
703
|
1365|America/Toronto
|
703
704
|
1367|America/Toronto
|
705
|
+
1368|America/Edmonton
|
704
706
|
1380|America/New_York
|
705
707
|
1385|America/Denver
|
706
708
|
1386|America/New_York
|
@@ -915,12 +917,15 @@
|
|
915
917
|
1442|America/Los_Angeles
|
916
918
|
1443|America/New_York
|
917
919
|
1445|America/New_York
|
920
|
+
1447|America/Chicago
|
921
|
+
1448|America/New_York
|
918
922
|
1450|America/Toronto
|
919
923
|
1458|America/Los_Angeles
|
920
924
|
1463|America/New_York
|
921
925
|
1469|America/Chicago
|
922
926
|
1470|America/New_York
|
923
927
|
1473|America/Grenada
|
928
|
+
1474|America/Winnipeg
|
924
929
|
1475|America/New_York
|
925
930
|
1478|America/New_York
|
926
931
|
1479|America/Chicago
|
@@ -965,6 +970,7 @@
|
|
965
970
|
1567|America/New_York
|
966
971
|
1570|America/New_York
|
967
972
|
1571|America/New_York
|
973
|
+
1572|America/Chicago
|
968
974
|
1573|America/Chicago
|
969
975
|
1574|America/New_York
|
970
976
|
1574772|America/Chicago
|
@@ -1164,7 +1170,7 @@
|
|
1164
1170
|
1630|America/Chicago
|
1165
1171
|
1631|America/New_York
|
1166
1172
|
1636|America/Chicago
|
1167
|
-
1639|America/
|
1173
|
+
1639|America/Regina
|
1168
1174
|
1640|America/New_York
|
1169
1175
|
1641|America/Chicago
|
1170
1176
|
1646|America/New_York
|
@@ -1607,6 +1613,8 @@
|
|
1607
1613
|
1831|America/Los_Angeles
|
1608
1614
|
1832|America/Chicago
|
1609
1615
|
1838|America/New_York
|
1616
|
+
1839|America/New_York
|
1617
|
+
1840|America/Los_Angeles
|
1610
1618
|
1843|America/New_York
|
1611
1619
|
1845|America/New_York
|
1612
1620
|
1847|America/Chicago
|
@@ -1970,6 +1978,7 @@
|
|
1970
1978
|
1939|America/Puerto_Rico
|
1971
1979
|
1940|America/Chicago
|
1972
1980
|
1941|America/New_York
|
1981
|
+
1945|America/Chicago
|
1973
1982
|
1947|America/New_York
|
1974
1983
|
1949|America/Los_Angeles
|
1975
1984
|
1951|America/Los_Angeles
|
@@ -2095,6 +2104,7 @@
|
|
2095
2104
|
34928|Atlantic/Canary
|
2096
2105
|
350|Europe/Gibraltar
|
2097
2106
|
351|Atlantic/Azores&Europe/Lisbon
|
2107
|
+
3511|Atlantic/Azores&Europe/Lisbon
|
2098
2108
|
3512|Europe/Lisbon
|
2099
2109
|
351292|Atlantic/Azores
|
2100
2110
|
351295|Atlantic/Azores
|
@@ -2171,6 +2181,33 @@
|
|
2171
2181
|
441534|Europe/Jersey
|
2172
2182
|
441624|Europe/Isle_of_Man
|
2173
2183
|
442|Europe/London
|
2184
|
+
443|Europe/Guernsey&Europe/Isle_of_Man&Europe/London
|
2185
|
+
445|Europe/Guernsey&Europe/Isle_of_Man&Europe/London
|
2186
|
+
4470|Europe/Guernsey&Europe/Isle_of_Man&Europe/London
|
2187
|
+
4471|Europe/Guernsey&Europe/Isle_of_Man&Europe/London
|
2188
|
+
4472|Europe/Guernsey&Europe/Isle_of_Man&Europe/London
|
2189
|
+
4473|Europe/Guernsey&Europe/Isle_of_Man&Europe/London
|
2190
|
+
4474|Europe/Guernsey&Europe/Isle_of_Man&Europe/London
|
2191
|
+
4475|Europe/Guernsey&Europe/Isle_of_Man&Europe/London
|
2192
|
+
44760|Europe/Guernsey&Europe/Isle_of_Man&Europe/London
|
2193
|
+
44762|Europe/Guernsey&Europe/Isle_of_Man&Europe/London
|
2194
|
+
44763|Europe/Guernsey&Europe/Isle_of_Man&Europe/London
|
2195
|
+
447640|Europe/Guernsey&Europe/Isle_of_Man&Europe/London
|
2196
|
+
447641|Europe/Guernsey&Europe/Isle_of_Man&Europe/London
|
2197
|
+
447643|Europe/Guernsey&Europe/Isle_of_Man&Europe/London
|
2198
|
+
447644|Europe/Guernsey&Europe/Isle_of_Man&Europe/London
|
2199
|
+
447646|Europe/Guernsey&Europe/Isle_of_Man&Europe/London
|
2200
|
+
44765|Europe/Guernsey&Europe/Isle_of_Man&Europe/London
|
2201
|
+
44766|Europe/Guernsey&Europe/Isle_of_Man&Europe/London
|
2202
|
+
44767|Europe/Guernsey&Europe/Isle_of_Man&Europe/London
|
2203
|
+
44768|Europe/Guernsey&Europe/Isle_of_Man&Europe/London
|
2204
|
+
447693|Europe/Guernsey&Europe/Isle_of_Man&Europe/London
|
2205
|
+
447699|Europe/Guernsey&Europe/Isle_of_Man&Europe/London
|
2206
|
+
4477|Europe/Guernsey&Europe/Isle_of_Man&Europe/London
|
2207
|
+
4478|Europe/Guernsey&Europe/Isle_of_Man&Europe/London
|
2208
|
+
4479|Europe/Guernsey&Europe/Isle_of_Man&Europe/London
|
2209
|
+
448|Europe/Guernsey&Europe/Isle_of_Man&Europe/London
|
2210
|
+
449|Europe/Guernsey&Europe/Isle_of_Man&Europe/London
|
2174
2211
|
45|Europe/Copenhagen
|
2175
2212
|
46|Europe/Stockholm
|
2176
2213
|
47|Arctic/Longyearbyen&Europe/Oslo
|
@@ -2837,7 +2874,7 @@
|
|
2837
2874
|
565|America/Santiago
|
2838
2875
|
566|America/Santiago
|
2839
2876
|
567|America/Santiago
|
2840
|
-
|
2877
|
+
568|America/Santiago
|
2841
2878
|
569|America/Santiago
|
2842
2879
|
57|America/Bogota
|
2843
2880
|
58|America/Caracas
|
@@ -2903,7 +2940,7 @@
|
|
2903
2940
|
61851060|Indian/Cocos
|
2904
2941
|
61851087|Australia/Perth
|
2905
2942
|
61851088|Indian/Christmas
|
2906
|
-
61851089|
|
2943
|
+
61851089|Indian/Cocos
|
2907
2944
|
6185109|Australia/Perth
|
2908
2945
|
618511|Australia/Perth
|
2909
2946
|
61851100|Australia/Adelaide&Australia/Perth
|
@@ -2922,15 +2959,39 @@
|
|
2922
2959
|
61851156|Australia/Adelaide&Australia/Perth
|
2923
2960
|
61851158|Australia/Adelaide&Australia/Perth
|
2924
2961
|
61851175|Indian/Christmas
|
2962
|
+
61851176|Indian/Cocos
|
2925
2963
|
61851185|Australia/Adelaide&Australia/Perth
|
2926
2964
|
61851187|Australia/Adelaide&Australia/Perth
|
2927
2965
|
6185120|Australia/Perth
|
2928
2966
|
61851204|Indian/Christmas
|
2929
2967
|
61851205|Australia/Sydney
|
2930
|
-
|
2968
|
+
61851209|Australia/Adelaide&Australia/Perth
|
2969
|
+
6185121|Australia/Adelaide&Australia/Perth
|
2970
|
+
61851221|Australia/Adelaide&Australia/Perth
|
2971
|
+
61851222|Indian/Christmas
|
2972
|
+
61851223|Indian/Cocos
|
2973
|
+
61851224|Australia/Perth
|
2974
|
+
61851225|Australia/Perth
|
2975
|
+
61851226|Australia/Perth
|
2976
|
+
61851227|Australia/Adelaide&Australia/Perth
|
2977
|
+
61851228|Australia/Adelaide&Australia/Perth
|
2978
|
+
61851229|Australia/Adelaide&Australia/Perth
|
2979
|
+
61851230|Australia/Sydney
|
2980
|
+
61851231|Australia/Adelaide&Australia/Perth
|
2981
|
+
61851232|Australia/Sydney
|
2982
|
+
61851233|Australia/Sydney
|
2983
|
+
61851234|Australia/Sydney
|
2984
|
+
61851235|Indian/Christmas
|
2985
|
+
61851236|Australia/Adelaide&Australia/Perth
|
2986
|
+
61851237|Australia/Adelaide&Australia/Perth
|
2987
|
+
61851238|Australia/Adelaide&Australia/Perth
|
2988
|
+
61851239|Australia/Adelaide&Australia/Perth
|
2931
2989
|
6185124|Australia/Sydney
|
2932
2990
|
6185125|Australia/Sydney
|
2933
2991
|
6185126|Australia/Sydney
|
2992
|
+
6185127|Australia/Adelaide&Australia/Perth
|
2993
|
+
6185128|Australia/Adelaide&Australia/Perth
|
2994
|
+
6185129|Australia/Adelaide&Australia/Perth
|
2934
2995
|
6186|Australia/Adelaide&Australia/Perth
|
2935
2996
|
6187|Australia/Adelaide&Australia/Perth
|
2936
2997
|
6188|Australia/Adelaide&Australia/Perth
|
@@ -2971,11 +3032,15 @@
|
|
2971
3032
|
61891700|Australia/Adelaide&Australia/Perth&Indian/Christmas
|
2972
3033
|
61891701|Australia/Adelaide&Australia/Perth&Indian/Christmas
|
2973
3034
|
61891702|Australia/Adelaide&Australia/Perth&Indian/Cocos
|
3035
|
+
61891703|Indian/Cocos
|
2974
3036
|
61891710|Australia/Adelaide&Australia/Perth&Indian/Christmas
|
2975
3037
|
61891711|Australia/Adelaide&Australia/Perth&Indian/Christmas
|
2976
3038
|
61891712|Australia/Adelaide&Australia/Perth&Indian/Christmas
|
3039
|
+
61891958|Indian/Christmas
|
2977
3040
|
61891959|Australia/Adelaide&Australia/Perth&Indian/Cocos
|
2978
3041
|
62|Asia/Jakarta&Asia/Jayapura&Asia/Makassar
|
3042
|
+
62007|Asia/Jakarta&Asia/Makassar
|
3043
|
+
621|Asia/Jakarta&Asia/Makassar
|
2979
3044
|
622|Asia/Jakarta
|
2980
3045
|
6231|Asia/Jakarta
|
2981
3046
|
6232|Asia/Jakarta
|
@@ -2983,12 +3048,8 @@
|
|
2983
3048
|
6234|Asia/Jakarta
|
2984
3049
|
6235|Asia/Jakarta
|
2985
3050
|
6236|Asia/Makassar
|
2986
|
-
|
2987
|
-
|
2988
|
-
62372|Asia/Makassar
|
2989
|
-
62373|Asia/Makassar
|
2990
|
-
62374|Asia/Makassar
|
2991
|
-
62376|Asia/Makassar
|
3051
|
+
6237|Asia/Makassar
|
3052
|
+
62379|Asia/Jakarta&Asia/Makassar
|
2992
3053
|
6238|Asia/Makassar
|
2993
3054
|
624|Asia/Makassar
|
2994
3055
|
62403|Asia/Jayapura&Asia/Makassar
|
@@ -3013,27 +3074,21 @@
|
|
3013
3074
|
6256|Asia/Jakarta
|
3014
3075
|
626|Asia/Jakarta
|
3015
3076
|
627|Asia/Jakarta
|
3016
|
-
|
3077
|
+
628|Asia/Jakarta
|
3078
|
+
6280|Asia/Jakarta&Asia/Makassar
|
3017
3079
|
62811|Asia/Jakarta&Asia/Makassar
|
3018
3080
|
62818|Asia/Jakarta&Asia/Makassar
|
3019
3081
|
62819|Asia/Jakarta&Asia/Makassar
|
3020
|
-
6282|Asia/Jakarta
|
3021
3082
|
62824|Asia/Jakarta&Asia/Makassar
|
3022
3083
|
62829|Asia/Jakarta&Asia/Makassar
|
3023
|
-
6283|Asia/Jakarta
|
3024
3084
|
62831|Asia/Jakarta&Asia/Makassar
|
3025
3085
|
62833|Asia/Jakarta&Asia/Makassar
|
3026
3086
|
62834|Asia/Jakarta&Asia/Makassar
|
3027
3087
|
62839|Asia/Jakarta&Asia/Makassar
|
3028
|
-
6285|Asia/Jakarta
|
3029
3088
|
62853|Asia/Jakarta&Asia/Makassar
|
3030
|
-
6286|Asia/Jakarta
|
3031
3089
|
62868|Asia/Jakarta&Asia/Makassar
|
3032
|
-
6287|Asia/Jakarta
|
3033
3090
|
62876|Asia/Jakarta&Asia/Makassar
|
3034
|
-
6288|Asia/Jakarta
|
3035
3091
|
62887|Asia/Jakarta&Asia/Makassar
|
3036
|
-
6289|Asia/Jakarta
|
3037
3092
|
6290|Asia/Jayapura
|
3038
3093
|
6291|Asia/Jayapura
|
3039
3094
|
62915|Asia/Jakarta&Asia/Jayapura
|
@@ -3088,6 +3143,7 @@
|
|
3088
3143
|
688|Pacific/Funafuti
|
3089
3144
|
689|Pacific/Gambier&Pacific/Marquesas&Pacific/Tahiti
|
3090
3145
|
6894|Pacific/Tahiti
|
3146
|
+
68980|Pacific/Gambier&Pacific/Marquesas&Pacific/Tahiti
|
3091
3147
|
68987|Pacific/Gambier&Pacific/Marquesas&Pacific/Tahiti
|
3092
3148
|
68988|Pacific/Tahiti
|
3093
3149
|
68989|Pacific/Tahiti
|
data/lib/telephone_number.rb
CHANGED
@@ -7,18 +7,18 @@ module TelephoneNumber
|
|
7
7
|
MOBILE_TOKEN_COUNTRIES = { AR: '9' }.freeze
|
8
8
|
|
9
9
|
def initialize(data_hash)
|
10
|
+
validations = data_hash.fetch(:validations, {}).dup
|
10
11
|
@country_code = data_hash[:country_code]
|
11
12
|
@country_id = data_hash[:id]
|
12
|
-
@general_validation = NumberValidation.new(:general_desc,
|
13
|
+
@general_validation = NumberValidation.new(:general_desc, validations[:general_desc]) if validations[:general_desc]
|
13
14
|
@international_prefix = Regexp.new(data_hash[:international_prefix]) if data_hash[:international_prefix]
|
14
15
|
@main_country_for_code = data_hash[:main_country_for_code] == 'true'
|
15
16
|
@mobile_token = MOBILE_TOKEN_COUNTRIES[@country_id.to_sym]
|
16
17
|
@national_prefix = data_hash[:national_prefix]
|
17
18
|
@national_prefix_for_parsing = Regexp.new(data_hash[:national_prefix_for_parsing]) if data_hash[:national_prefix_for_parsing]
|
18
19
|
@national_prefix_transform_rule = data_hash[:national_prefix_transform_rule]
|
19
|
-
@validations =
|
20
|
-
|
21
|
-
.map { |name, data| NumberValidation.new(name, data) }
|
20
|
+
@validations = validations.delete_if { |name, _| name == :general_desc || name == :area_code_optional }
|
21
|
+
.map { |name, data| NumberValidation.new(name, data) }
|
22
22
|
@formats = data_hash.fetch(:formats, []).map { |format| NumberFormat.new(format, data_hash[:national_prefix_formatting_rule]) }
|
23
23
|
end
|
24
24
|
|
@@ -52,11 +52,24 @@ module TelephoneNumber
|
|
52
52
|
end
|
53
53
|
|
54
54
|
def self.load_data
|
55
|
-
|
56
|
-
main_data = Marshal.load(File.binread(
|
57
|
-
|
58
|
-
|
59
|
-
|
55
|
+
data_path = "#{File.dirname(__FILE__)}/../../data/telephone_number_data_file.dat"
|
56
|
+
main_data = Marshal.load(File.binread(data_path))
|
57
|
+
if TelephoneNumber.override_file
|
58
|
+
override_data = Marshal.load(File.binread(TelephoneNumber.override_file))
|
59
|
+
main_data = deep_merge(main_data, override_data)
|
60
|
+
end
|
61
|
+
main_data
|
62
|
+
end
|
63
|
+
|
64
|
+
def self.deep_merge(base_hash, other_hash)
|
65
|
+
other_hash.each do |key, value|
|
66
|
+
base_hash[key] = if base_hash[key].is_a?(Hash) && value.is_a?(Hash)
|
67
|
+
deep_merge(base_hash[key], value)
|
68
|
+
else
|
69
|
+
value
|
70
|
+
end
|
71
|
+
end
|
72
|
+
base_hash
|
60
73
|
end
|
61
74
|
|
62
75
|
def self.all_countries
|
data/telephone_number.gemspec
CHANGED
@@ -19,6 +19,7 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.bindir = 'exe'
|
20
20
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
21
21
|
spec.require_paths = ['lib']
|
22
|
+
spec.required_ruby_version = '>= 2.4.0'
|
22
23
|
|
23
24
|
spec.add_development_dependency 'bundler'
|
24
25
|
spec.add_development_dependency 'rake'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: telephone_number
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.4.
|
4
|
+
version: 1.4.12
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- MOBI Wireless Management
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-07-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -150,6 +150,7 @@ files:
|
|
150
150
|
- ".rubocop.yml"
|
151
151
|
- ".ruby-version"
|
152
152
|
- ".travis.yml"
|
153
|
+
- CHANGELOG.md
|
153
154
|
- CODE_OF_CONDUCT.md
|
154
155
|
- Gemfile
|
155
156
|
- LICENSE
|
@@ -453,6 +454,8 @@ files:
|
|
453
454
|
- data/geocoding/en/95.txt
|
454
455
|
- data/geocoding/en/960.dat
|
455
456
|
- data/geocoding/en/960.txt
|
457
|
+
- data/geocoding/en/961.dat
|
458
|
+
- data/geocoding/en/961.txt
|
456
459
|
- data/geocoding/en/962.dat
|
457
460
|
- data/geocoding/en/962.txt
|
458
461
|
- data/geocoding/en/963.dat
|
@@ -632,7 +635,6 @@ files:
|
|
632
635
|
- lib/telephone_number/parser.rb
|
633
636
|
- lib/telephone_number/time_zone_detector.rb
|
634
637
|
- lib/telephone_number/version.rb
|
635
|
-
- lib/utilities/hash.rb
|
636
638
|
- telephone_number.gemspec
|
637
639
|
homepage: https://github.com/mobi/telephone_number
|
638
640
|
licenses:
|
@@ -646,7 +648,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
646
648
|
requirements:
|
647
649
|
- - ">="
|
648
650
|
- !ruby/object:Gem::Version
|
649
|
-
version:
|
651
|
+
version: 2.4.0
|
650
652
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
651
653
|
requirements:
|
652
654
|
- - ">="
|
data/lib/utilities/hash.rb
DELETED
@@ -1,47 +0,0 @@
|
|
1
|
-
class Hash
|
2
|
-
# Returns a new hash with +self+ and +other_hash+ merged recursively.
|
3
|
-
#
|
4
|
-
# h1 = { a: true, b: { c: [1, 2, 3] } }
|
5
|
-
# h2 = { a: false, b: { x: [3, 4, 5] } }
|
6
|
-
#
|
7
|
-
# h1.deep_merge(h2) # => { a: false, b: { c: [1, 2, 3], x: [3, 4, 5] } }
|
8
|
-
#
|
9
|
-
# Like with Hash#merge in the standard library, a block can be provided
|
10
|
-
# to merge values:
|
11
|
-
#
|
12
|
-
# h1 = { a: 100, b: 200, c: { c1: 100 } }
|
13
|
-
# h2 = { b: 250, c: { c1: 200 } }
|
14
|
-
# h1.deep_merge(h2) { |key, this_val, other_val| this_val + other_val }
|
15
|
-
# # => { a: 100, b: 450, c: { c1: 300 } }
|
16
|
-
def deep_deep_merge(other_hash, &block)
|
17
|
-
dup.deep_deep_merge!(other_hash, &block)
|
18
|
-
end
|
19
|
-
|
20
|
-
# Same as +deep_merge+, but modifies +self+.
|
21
|
-
def deep_deep_merge!(other_hash, &block)
|
22
|
-
other_hash.each_pair do |current_key, other_value|
|
23
|
-
this_value = self[current_key]
|
24
|
-
|
25
|
-
self[current_key] = if this_value.is_a?(Hash) && other_value.is_a?(Hash)
|
26
|
-
this_value.deep_deep_merge(other_value, &block)
|
27
|
-
else
|
28
|
-
if block_given? && key?(current_key)
|
29
|
-
block.call(current_key, this_value, other_value)
|
30
|
-
else
|
31
|
-
other_value
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
self
|
37
|
-
end
|
38
|
-
|
39
|
-
def except(*keys)
|
40
|
-
dup.except!(*keys)
|
41
|
-
end
|
42
|
-
|
43
|
-
def except!(*keys)
|
44
|
-
keys.each { |key| delete(key) }
|
45
|
-
self
|
46
|
-
end
|
47
|
-
end
|