phony 2.16.4 → 2.16.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5d694ea5581b74590cc1986eca397aa059a4835e
4
- data.tar.gz: 4cfc87a6bdceb938a024a285bf04a514162bc47d
3
+ metadata.gz: 007664f345320ce791321f4caefa7547e51fc87f
4
+ data.tar.gz: 88fa29994d4278c8a103b60286a920fb582582e2
5
5
  SHA512:
6
- metadata.gz: 340c1f1ff5187c9e722fa0c82d1caa01637ae92466e8d1dec8c302742074e8b0ff850a3bff9b16f9d0794819f50899c428054199998efd76acc1dd8bd7121d1d
7
- data.tar.gz: c1d20505af244d4864512d0d03c2de405056da6d96fc92c7396f803d9a887b12e5750bf23829cd86b098521267036ef704051a06d1145f5e4b806c92f6b6ac9a
6
+ metadata.gz: 106d1d49a6bd3c4a2448e18c4bba3f8896c3a6cb46cf9597a0c9b0a8ff7c061cd877bd9b5189bedb68a193714e64c322b8658cf1345a6c563b323c334a4f2a76
7
+ data.tar.gz: 3e23392df6d3f950664b15f3d3be277627d3b2f9242e8033d97a41c73e1d0b3d6d03e56e37e75bf922658e7dd578fd88209bff681b2dde76716284f5ede146dd
@@ -184,11 +184,13 @@ Phony.define do
184
184
  # country '49' # Germany, see special file.
185
185
 
186
186
  # Peru.
187
- #
187
+ # Note: https://en.wikipedia.org/wiki/Telephone_numbers_in_Peru
188
+ # Note: https://www.numberingplans.com/?page=plans&sub=phonenr&alpha_2_input=PE
188
189
  country '51',
189
190
  one_of('103', '105') >> split(3,3) | # Service.
190
- one_of('1', '9') >> split(4,4) | # Lima and mobile.
191
- fixed(2) >> split(4,4) # 2-digit NDCs.
191
+ one_of('9') >> split(4,4) | # Mobile.
192
+ one_of('1') >> split(3,4) | # Lima.
193
+ fixed(2) >> split(3,3) # 2-digit NDCs.
192
194
 
193
195
  # Mexico.
194
196
  #
@@ -679,9 +681,17 @@ Phony.define do
679
681
 
680
682
  # Bulgaria
681
683
  #
684
+ # Note: https://www.numberingplans.com/?page=plans&sub=phonenr&alpha_2_input=BG
685
+ # Note: https://en.wikipedia.org/wiki/Telephone_numbers_in_Bulgaria
682
686
  country '359',
683
687
  trunk('0') |
684
- fixed(2) >> split(3,2,2) # Bulgaria
688
+ one_of('2') >> matched_split(
689
+ /\A\d{6}\z/ => [3,3], # Landline Sofia (optional last digit)
690
+ /\A\d{7}\z/ => [3,4]) | # Landline Sofia
691
+ fixed(2) >> matched_split(
692
+ /\A\d{5}\z/ => [3,2], # Landline (optional last digit)
693
+ /\A\d{6}\z/ => [3,3], # Landline
694
+ /\A\d{7}\z/ => [3,4]) # Mobile
685
695
 
686
696
  # Lithuania
687
697
  #
@@ -733,7 +743,13 @@ Phony.define do
733
743
 
734
744
  # country '382' # Montenegro, see special file
735
745
 
736
- country '383', todo # -
746
+ # Kosovo
747
+ #
748
+ # Note: https://en.wikipedia.org/wiki/Telephone_numbers_in_Kosovo
749
+ country '383',
750
+ trunk('0') |
751
+ fixed(2) >> split(3,3)
752
+
737
753
  country '384', todo # -
738
754
 
739
755
  # country '385' # Croatia, see special file.
@@ -411,6 +411,25 @@ describe 'plausibility' do
411
411
  it 'is correct for Russia' do
412
412
  Phony.plausible?('+7 3522 000 000').should be_truthy
413
413
  end
414
+
415
+ it 'is correct for Peru' do
416
+ Phony.plausible?('+51 1 123 1234').should be_truthy # Lima
417
+ Phony.plausible?('+51 9 1234 1234').should be_truthy # mobile
418
+ Phony.plausible?('+51 84 123 123').should be_truthy # Cuzco, best effort
419
+ end
420
+
421
+ it 'is correct for Kosovo' do
422
+ Phony.plausible?('+383 29 000 000').should be_truthy # Landline
423
+ Phony.plausible?('+383 44 000 000').should be_truthy # Mobile
424
+ end
425
+
426
+ it 'is correct for Bulgaria' do
427
+ Phony.plausible?('+359 2 123 123').should be_truthy # Landline Sofia
428
+ Phony.plausible?('+359 2 123 1234').should be_truthy # Landline Sofia
429
+ Phony.plausible?('+359 30 123 12').should be_truthy # Landline
430
+ Phony.plausible?('+359 30 123 123').should be_truthy # Landline
431
+ Phony.plausible?('+359 89 123 1234').should be_truthy # Mobile
432
+ end
414
433
  end
415
434
  end
416
435
  end
@@ -442,6 +442,10 @@ describe 'country descriptions' do
442
442
  it_splits '254111234567', ['254', '11', '1234567'] # Mombasa
443
443
  it_splits '254723100220', ['254', '723', '100220'] # Mombasa
444
444
  end
445
+ describe 'Kosovo' do
446
+ it_splits '38329000000', ['383', '29', '000', '000'] # Landline
447
+ it_splits '38344000000', ['383', '44', '000', '000'] # Mobile
448
+ end
445
449
  describe 'Kyrgyzstan' do
446
450
  it_splits '996312212345', %w(996 312 212 345)
447
451
  it_splits '996315212345', %w(996 315 212 345)
@@ -563,9 +567,9 @@ describe 'country descriptions' do
563
567
  it_splits '595961611234', %w(595 96 161 1234)
564
568
  end
565
569
  describe 'Peru' do
566
- it_splits '51112341234', ['51', '1', '1234', '1234'] # Lima
570
+ it_splits '5111231234', ['51', '1', '123', '1234'] # Lima
567
571
  it_splits '51912341234', ['51', '9', '1234', '1234'] # mobile
568
- it_splits '51841234123', ['51', '84', '1234', '123'] # Cuzco, best effort
572
+ it_splits '5184123123', ['51', '84', '123', '123'] # Cuzco, best effort
569
573
  end
570
574
  describe 'Philippines' do
571
575
  it_splits '6321234567', ['63', '2', '1234567']
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: phony
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.16.4
4
+ version: 2.16.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Florian Hanke
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-05-31 00:00:00.000000000 Z
11
+ date: 2018-08-27 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: 'Fast international phone number (E164 standard) normalizing, splitting
14
14
  and formatting. Lots of formatting options: International (+.., 00..), national
@@ -118,18 +118,18 @@ specification_version: 4
118
118
  summary: Fast international phone number (E164 standard) normalizing, splitting and
119
119
  formatting.
120
120
  test_files:
121
- - spec/functional/plausibility_spec.rb
122
- - spec/lib/phony/countries_spec.rb
123
- - spec/lib/phony/country_codes_spec.rb
121
+ - spec/lib/phony_spec.rb
124
122
  - spec/lib/phony/country_spec.rb
125
- - spec/lib/phony/dsl_spec.rb
126
- - spec/lib/phony/local_splitters/fixed_spec.rb
127
- - spec/lib/phony/local_splitters/regex_spec.rb
128
123
  - spec/lib/phony/national_code_spec.rb
129
- - spec/lib/phony/national_splitters/default_spec.rb
130
- - spec/lib/phony/national_splitters/fixed_spec.rb
124
+ - spec/lib/phony/countries_spec.rb
125
+ - spec/lib/phony/dsl_spec.rb
126
+ - spec/lib/phony/national_splitters/variable_spec.rb
131
127
  - spec/lib/phony/national_splitters/none_spec.rb
132
128
  - spec/lib/phony/national_splitters/regex_spec.rb
133
- - spec/lib/phony/national_splitters/variable_spec.rb
129
+ - spec/lib/phony/national_splitters/fixed_spec.rb
130
+ - spec/lib/phony/national_splitters/default_spec.rb
131
+ - spec/lib/phony/country_codes_spec.rb
132
+ - spec/lib/phony/local_splitters/regex_spec.rb
133
+ - spec/lib/phony/local_splitters/fixed_spec.rb
134
134
  - spec/lib/phony/vanity_spec.rb
135
- - spec/lib/phony_spec.rb
135
+ - spec/functional/plausibility_spec.rb