phony 2.18.19 → 2.19.1
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 +4 -4
 - data/README.textile +1 -1
 - data/lib/phony/countries.rb +3 -3
 - data/lib/phony/countries/italy.rb +1 -1
 - data/lib/phony/countries/japan.rb +7 -6
 - data/lib/phony/countries/serbia.rb +5 -1
 - data/lib/phony/country.rb +4 -2
 - data/lib/phony/country_codes.rb +1 -1
 - data/lib/phony/national_code.rb +1 -1
 - data/lib/phony/trunk_code.rb +5 -5
 - data/spec/functional/plausibility_spec.rb +9 -1
 - data/spec/lib/phony/countries_spec.rb +3 -0
 - data/spec/lib/phony/country_codes_spec.rb +43 -45
 - data/spec/lib/phony/country_spec.rb +12 -0
 - data/spec/lib/phony/trunk_code_spec.rb +85 -0
 - metadata +4 -2
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: cbadf1b4b8c2d79d7f32c069ee47175e879d57eaf582c93a6098efb068860945
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 644bf8449040256b95af0a1d47bcc15ce0ff35b8dfbc0ee36dd72bdaec20bc4c
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 994d683a1954d9136d9ee1fe9086e328c14b547c12db01beaf004c81beafa5625ae02f131269cfe6c945fb9666d544318663fa34b35f9d40a611066025583a82
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 43de3b0bf711cae8010b8b61c7c96b1ec89c88730044ae16acc68a6d866725e937811b33891a9663069f1f039d0c269fd1d1930413a168bce13957354694eba6
         
     | 
    
        data/README.textile
    CHANGED
    
    | 
         @@ -104,7 +104,7 @@ For example, when just loading the NANP CC, the retained memory usage is ~63kB. 
     | 
|
| 
       104 
104 
     | 
    
         | 
| 
       105 
105 
     | 
    
         
             
            h2. List of Handled Countries
         
     | 
| 
       106 
106 
     | 
    
         | 
| 
       107 
     | 
    
         
            -
            Mildly unmaintained list: Abhas, Afghan, Algerian, Argentina, Austrian, Australian, Azerbaijani, Belgian, Brazilian, Cambodian, Chilean, Chinese, Croatian, Cuban, Cypriot, Czech, Danish, Dutch, Egyptian, El Salvadorian, Estonian, French, German, Ghanan, Gibraltar, Greek, Haiti, Hong Kong, Hungarian, Indian, Iran, Irish, Israel, Italian, Kazakh, Liberian, Lithuanian, Luxembourgian, Malaysian, Malta, Mexican, Monaco, Morocco, New Zealand, Nigerian, Norwegian, Peruvian, Polish, Romanian, Russian, Rwandan, Seychelles, Singapore, Slovakian, South African, South Korean, South Osetian, Spanish, Sri Lankan, Sudan, Swedish, Swiss, Thailand, Tunisian, Turkish, Liechtenstein, UK, US, Venezuelan, Vietnamese, and Zambian numbers.
         
     | 
| 
      
 107 
     | 
    
         
            +
            Mildly unmaintained list: Abhas, Afghan, Algerian, Argentina, Austrian, Australian, Azerbaijani, Belgian, Brazilian, Cambodian, Chilean, Chinese, Croatian, Cuban, Cypriot, Czech, Danish, Dutch, Egyptian, El Salvadorian, Estonian, French, German, Ghanan, Gibraltar, Greek, Haiti, Hong Kong, Hungarian, Indian, Iran, Irish, Israel, Italian, Japanese, Kazakh, Liberian, Lithuanian, Luxembourgian, Malaysian, Malta, Mexican, Monaco, Morocco, New Zealand, Nigerian, Norwegian, Peruvian, Polish, Romanian, Russian, Rwandan, Seychelles, Singapore, Slovakian, South African, South Korean, South Osetian, Spanish, Sri Lankan, Sudan, Swedish, Swiss, Thailand, Tunisian, Turkish, Liechtenstein, UK, US, Venezuelan, Vietnamese, and Zambian numbers.
         
     | 
| 
       108 
108 
     | 
    
         | 
| 
       109 
109 
     | 
    
         
             
            h2. License
         
     | 
| 
       110 
110 
     | 
    
         | 
    
        data/lib/phony/countries.rb
    CHANGED
    
    | 
         @@ -432,9 +432,9 @@ Phony.define do 
     | 
|
| 
       432 
432 
     | 
    
         
             
              # http://en.wikipedia.org/wiki/Telephone_numbers_in_Rwanda
         
     | 
| 
       433 
433 
     | 
    
         
             
              country '250',
         
     | 
| 
       434 
434 
     | 
    
         
             
                trunk('0') |
         
     | 
| 
       435 
     | 
    
         
            -
                one_of('25') 
     | 
| 
       436 
     | 
    
         
            -
                match(/^(7[ 
     | 
| 
       437 
     | 
    
         
            -
                one_of('06') 
     | 
| 
      
 435 
     | 
    
         
            +
                one_of('25')        >> split(7) | # Geographic, fixed
         
     | 
| 
      
 436 
     | 
    
         
            +
                match(/^(7[2389])/) >> split(7) | # Non-geographic, mobile
         
     | 
| 
      
 437 
     | 
    
         
            +
                one_of('06')        >> split(6)   # Satellite
         
     | 
| 
       438 
438 
     | 
    
         | 
| 
       439 
439 
     | 
    
         
             
              country '251', fixed(2) >> split(3, 4) # Ethiopia http://www.wtng.info/wtng-251-et.html
         
     | 
| 
       440 
440 
     | 
    
         | 
| 
         @@ -269,7 +269,7 @@ service = [ # Not exhaustive. 
     | 
|
| 
       269 
269 
     | 
    
         
             
            ]
         
     | 
| 
       270 
270 
     | 
    
         | 
| 
       271 
271 
     | 
    
         
             
            Phony.define do
         
     | 
| 
       272 
     | 
    
         
            -
              country '39', trunk('', : 
     | 
| 
      
 272 
     | 
    
         
            +
              country '39', trunk('', normalize: false) |
         
     | 
| 
       273 
273 
     | 
    
         
             
                            one_of(*service)     >> split(3,3) |
         
     | 
| 
       274 
274 
     | 
    
         
             
                            one_of(*mobile)      >> split(3,4,-1..1) |
         
     | 
| 
       275 
275 
     | 
    
         
             
                            one_of(*ndcs_2digit) >> split(4, 2..4) |
         
     | 
| 
         @@ -166,6 +166,7 @@ ndcs_with_6_subscriber_numbers = %w( 
     | 
|
| 
       166 
166 
     | 
    
         
             
            422
         
     | 
| 
       167 
167 
     | 
    
         
             
            428
         
     | 
| 
       168 
168 
     | 
    
         
             
            436
         
     | 
| 
      
 169 
     | 
    
         
            +
            438
         
     | 
| 
       169 
170 
     | 
    
         
             
            439
         
     | 
| 
       170 
171 
     | 
    
         
             
            460
         
     | 
| 
       171 
172 
     | 
    
         
             
            463
         
     | 
| 
         @@ -281,7 +282,6 @@ ndcs_with_6_subscriber_numbers = %w( 
     | 
|
| 
       281 
282 
     | 
    
         
             
            846
         
     | 
| 
       282 
283 
     | 
    
         
             
            847
         
     | 
| 
       283 
284 
     | 
    
         
             
            848
         
     | 
| 
       284 
     | 
    
         
            -
            849
         
     | 
| 
       285 
285 
     | 
    
         
             
            852
         
     | 
| 
       286 
286 
     | 
    
         
             
            853
         
     | 
| 
       287 
287 
     | 
    
         
             
            854
         
     | 
| 
         @@ -361,7 +361,6 @@ ndcs_with_5_subscriber_numbers = %w( 
     | 
|
| 
       361 
361 
     | 
    
         
             
            1374
         
     | 
| 
       362 
362 
     | 
    
         
             
            1377
         
     | 
| 
       363 
363 
     | 
    
         
             
            1392
         
     | 
| 
       364 
     | 
    
         
            -
            1394
         
     | 
| 
       365 
364 
     | 
    
         
             
            1397
         
     | 
| 
       366 
365 
     | 
    
         
             
            1398
         
     | 
| 
       367 
366 
     | 
    
         
             
            1456
         
     | 
| 
         @@ -393,7 +392,6 @@ ndcs_with_5_subscriber_numbers = %w( 
     | 
|
| 
       393 
392 
     | 
    
         
             
            8477
         
     | 
| 
       394 
393 
     | 
    
         
             
            8512
         
     | 
| 
       395 
394 
     | 
    
         
             
            8514
         
     | 
| 
       396 
     | 
    
         
            -
            8636
         
     | 
| 
       397 
395 
     | 
    
         
             
            9496
         
     | 
| 
       398 
396 
     | 
    
         
             
            9802
         
     | 
| 
       399 
397 
     | 
    
         
             
            9912
         
     | 
| 
         @@ -403,12 +401,15 @@ ndcs_with_5_subscriber_numbers = %w( 
     | 
|
| 
       403 
401 
     | 
    
         | 
| 
       404 
402 
     | 
    
         
             
            Phony.define do
         
     | 
| 
       405 
403 
     | 
    
         
             
              country '81',
         
     | 
| 
       406 
     | 
    
         
            -
                trunk('0', : 
     | 
| 
       407 
     | 
    
         
            -
                one_of( 
     | 
| 
      
 404 
     | 
    
         
            +
                trunk('0', normalize: true, format: true, split: true) |
         
     | 
| 
      
 405 
     | 
    
         
            +
                one_of(%w(20 50 60 70 90))             >> split(4,4) | # mobile, VoIP telephony
         
     | 
| 
       408 
406 
     | 
    
         
             
                one_of(ndcs_with_5_subscriber_numbers) >> split(1,4) |
         
     | 
| 
       409 
407 
     | 
    
         
             
                one_of(ndcs_with_6_subscriber_numbers) >> split(2,4) |
         
     | 
| 
       410 
408 
     | 
    
         
             
                one_of(%w(120))                        >> split(3,3) | # freephone
         
     | 
| 
       411 
     | 
    
         
            -
                one_of(%w( 
     | 
| 
      
 409 
     | 
    
         
            +
                one_of(%w(800))                        >> split(3,4) | # freephone
         
     | 
| 
      
 410 
     | 
    
         
            +
                one_of(%w(180 570))                    >> split(3,3) | # Tele-gong/Tele-dome, Navi-dial
         
     | 
| 
      
 411 
     | 
    
         
            +
                one_of(%w(170 990))                    >> split(2,4) | # Dengon-dial, Dial Q2 (discontinued)
         
     | 
| 
      
 412 
     | 
    
         
            +
                one_of(%w(80))                         >> split(4,4) | # mobile
         
     | 
| 
       412 
413 
     | 
    
         
             
                one_of(ndcs_with_7_subscriber_numbers) >> split(3,4) |
         
     | 
| 
       413 
414 
     | 
    
         
             
                one_of(ndcs_with_8_subscriber_numbers) >> split(4,4) |
         
     | 
| 
       414 
415 
     | 
    
         
             
                # TODO: 91(NDC) N(S)N length: 5-13 - Non-geographic number (Direct subscriber telephone service (legacy))
         
     | 
| 
         @@ -8,6 +8,9 @@ Phony.define do 
     | 
|
| 
       8 
8 
     | 
    
         
             
                trunk('0') |
         
     | 
| 
       9 
9 
     | 
    
         
             
                one_of(%w(800)) >> split(3,2) | # freephone
         
     | 
| 
       10 
10 
     | 
    
         
             
                one_of(%w(808)) >> split(3,2) | # payphone
         
     | 
| 
      
 11 
     | 
    
         
            +
                one_of(%w(677 678)) >> matched_split(
         
     | 
| 
      
 12 
     | 
    
         
            +
                    /\A\d{4}\z/ => [3],
         
     | 
| 
      
 13 
     | 
    
         
            +
                    /\A\d+\z/ => [3,3]) |
         
     | 
| 
       11 
14 
     | 
    
         
             
                one_of(%w(230)) >> matched_split(
         
     | 
| 
       12 
15 
     | 
    
         
             
                    /\A\d{4}\z/ => [4],
         
     | 
| 
       13 
16 
     | 
    
         
             
                    /\A\d+\z/ => [3,2]) |
         
     | 
| 
         @@ -21,6 +24,7 @@ Phony.define do 
     | 
|
| 
       21 
24 
     | 
    
         
             
                one_of(%w(72)) >> split(3,3) | # ISP
         
     | 
| 
       22 
25 
     | 
    
         
             
                one_of(%w(60 61 68 69)) >> matched_split(
         
     | 
| 
       23 
26 
     | 
    
         
             
                    /\A\d{3}\z/ => [3],
         
     | 
| 
      
 27 
     | 
    
         
            +
                    /\A\d{6}\z/ => [3,3],
         
     | 
| 
       24 
28 
     | 
    
         
             
                    /\A\d{7}\z/ => [3,4],
         
     | 
| 
       25 
29 
     | 
    
         
             
                    /\A\d+\z/ => [3,3,4]) | # mobile, voicemail (mobile)
         
     | 
| 
       26 
30 
     | 
    
         
             
                one_of(%w(66 63)) >> matched_split(
         
     | 
| 
         @@ -40,4 +44,4 @@ Phony.define do 
     | 
|
| 
       40 
44 
     | 
    
         
             
                fixed(2) >> matched_split(
         
     | 
| 
       41 
45 
     | 
    
         
             
                    /\A\d{5}\z/ => [3,2],
         
     | 
| 
       42 
46 
     | 
    
         
             
                    /\A\d+\z/ => [3,3])
         
     | 
| 
       43 
     | 
    
         
            -
            end
         
     | 
| 
      
 47 
     | 
    
         
            +
            end
         
     | 
    
        data/lib/phony/country.rb
    CHANGED
    
    | 
         @@ -156,10 +156,12 @@ module Phony 
     | 
|
| 
       156 
156 
     | 
    
         
             
                #
         
     | 
| 
       157 
157 
     | 
    
         
             
                # In some cases it doesn't, like Italy.
         
     | 
| 
       158 
158 
     | 
    
         
             
                #
         
     | 
| 
       159 
     | 
    
         
            -
                 
     | 
| 
      
 159 
     | 
    
         
            +
                # Note: Options such as CC
         
     | 
| 
      
 160 
     | 
    
         
            +
                #
         
     | 
| 
      
 161 
     | 
    
         
            +
                def normalize national_number, options = {}
         
     | 
| 
       160 
162 
     | 
    
         
             
                  clean! national_number
         
     | 
| 
       161 
163 
     | 
    
         
             
                  normalized = @codes.reduce national_number do |number, code|
         
     | 
| 
       162 
     | 
    
         
            -
                    result = code.normalize number
         
     | 
| 
      
 164 
     | 
    
         
            +
                    result = code.normalize number, options
         
     | 
| 
       163 
165 
     | 
    
         
             
                    break result if result
         
     | 
| 
       164 
166 
     | 
    
         
             
                    number
         
     | 
| 
       165 
167 
     | 
    
         
             
                  end
         
     | 
    
        data/lib/phony/country_codes.rb
    CHANGED
    
    
    
        data/lib/phony/national_code.rb
    CHANGED
    
    
    
        data/lib/phony/trunk_code.rb
    CHANGED
    
    | 
         @@ -6,9 +6,9 @@ module Phony 
     | 
|
| 
       6 
6 
     | 
    
         
             
                #  * code: The trunk code, e.g. 0.
         
     | 
| 
       7 
7 
     | 
    
         
             
                #
         
     | 
| 
       8 
8 
     | 
    
         
             
                # Options:
         
     | 
| 
       9 
     | 
    
         
            -
                #  * normalize: Remove the trunk code when normalizing (only use if number scheme is defined unambiguously).
         
     | 
| 
       10 
     | 
    
         
            -
                #  * split: Remove the trunk code when splitting (only use if number scheme is defined unambiguously).
         
     | 
| 
       11 
     | 
    
         
            -
                #  * format: Add the trunk code when formatting (passing `false` will not add it).
         
     | 
| 
      
 9 
     | 
    
         
            +
                #  * normalize: [true (default), false] Remove the trunk code when normalizing (only use if number scheme is defined unambiguously).
         
     | 
| 
      
 10 
     | 
    
         
            +
                #  * split: [true, false (default)] Remove the trunk code when splitting (only use if number scheme is defined unambiguously).
         
     | 
| 
      
 11 
     | 
    
         
            +
                #  * format: [true (default), false] Add the trunk code when formatting (passing `false` will not add it).
         
     | 
| 
       12 
12 
     | 
    
         
             
                #
         
     | 
| 
       13 
13 
     | 
    
         
             
                def initialize code, options = {}
         
     | 
| 
       14 
14 
     | 
    
         
             
                  @code = code
         
     | 
| 
         @@ -35,8 +35,8 @@ module Phony 
     | 
|
| 
       35 
35 
     | 
    
         | 
| 
       36 
36 
     | 
    
         
             
                # Normalize normalizes the given national number.
         
     | 
| 
       37 
37 
     | 
    
         
             
                #
         
     | 
| 
       38 
     | 
    
         
            -
                def normalize national_number
         
     | 
| 
       39 
     | 
    
         
            -
                  national_number.gsub! @trunk_code_replacement, EMPTY_STRING if @normalize
         
     | 
| 
      
 38 
     | 
    
         
            +
                def normalize national_number, options = {}
         
     | 
| 
      
 39 
     | 
    
         
            +
                  national_number.gsub! @trunk_code_replacement, EMPTY_STRING if @normalize && options[:cc]
         
     | 
| 
       40 
40 
     | 
    
         
             
                  return national_number
         
     | 
| 
       41 
41 
     | 
    
         
             
                end
         
     | 
| 
       42 
42 
     | 
    
         | 
| 
         @@ -399,6 +399,12 @@ describe 'plausibility' do 
     | 
|
| 
       399 
399 
     | 
    
         
             
                                                                         '+507 6 123 4567',
         
     | 
| 
       400 
400 
     | 
    
         
             
                                                                         '+507 2 123 456']
         
     | 
| 
       401 
401 
     | 
    
         
             
                  it_is_correct_for 'Reunion / Mayotte (new)', :samples => '+262 295 276 964'
         
     | 
| 
      
 402 
     | 
    
         
            +
                  it_is_correct_for 'Rwanda', :samples => ['+250 72 1234567',
         
     | 
| 
      
 403 
     | 
    
         
            +
                                                           '+250 73 1234567',
         
     | 
| 
      
 404 
     | 
    
         
            +
                                                           '+250 78 1234567',
         
     | 
| 
      
 405 
     | 
    
         
            +
                                                           '+250 79 1234567',
         
     | 
| 
      
 406 
     | 
    
         
            +
                                                           '+250 25 1234567',
         
     | 
| 
      
 407 
     | 
    
         
            +
                                                           '+250 06 123456']
         
     | 
| 
       402 
408 
     | 
    
         
             
                  it_is_correct_for 'Saint Helena', :samples => '+290  5134'
         
     | 
| 
       403 
409 
     | 
    
         
             
                  it_is_correct_for 'Saint Pierre and Miquelon (Collectivité territoriale de la République française)', :samples => '+508  474 714'
         
     | 
| 
       404 
410 
     | 
    
         
             
                  it_is_correct_for 'Salvador (El)', :samples => [
         
     | 
| 
         @@ -427,8 +433,10 @@ describe 'plausibility' do 
     | 
|
| 
       427 
433 
     | 
    
         
             
                                                           ['+381 11 123 456', '+381 11 123 4567'],
         
     | 
| 
       428 
434 
     | 
    
         
             
                                                           '+381 72 123 456',
         
     | 
| 
       429 
435 
     | 
    
         
             
                                                           '+381 60 123',
         
     | 
| 
       430 
     | 
    
         
            -
                                                           '+381 60 123 4567',
         
     | 
| 
      
 436 
     | 
    
         
            +
                                                           ['+381 60 123 4567', '+381 69 123 456'],
         
     | 
| 
       431 
437 
     | 
    
         
             
                                                           '+381 42 123 456',
         
     | 
| 
      
 438 
     | 
    
         
            +
                                                           '+381 677 123 456',
         
     | 
| 
      
 439 
     | 
    
         
            +
                                                           '+381 678 123 456',
         
     | 
| 
       432 
440 
     | 
    
         
             
                                                           '+381 9 123 4567',
         
     | 
| 
       433 
441 
     | 
    
         
             
                                                           '+381 60 123',
         
     | 
| 
       434 
442 
     | 
    
         
             
                                                           '+381 60 123 456 7890',
         
     | 
| 
         @@ -484,6 +484,8 @@ describe 'country descriptions' do 
     | 
|
| 
       484 
484 
     | 
    
         
             
                  it_splits '817012345678', %w(81 70 1234 5678) # PHS
         
     | 
| 
       485 
485 
     | 
    
         
             
                  it_splits '818012345678', %w(81 80 1234 5678) # Cellular
         
     | 
| 
       486 
486 
     | 
    
         
             
                  it_splits '819012345678', %w(81 90 1234 5678) # Cellular
         
     | 
| 
      
 487 
     | 
    
         
            +
                  it_splits '810570123456', %w(81 570 123 456)  # Navi-dial
         
     | 
| 
      
 488 
     | 
    
         
            +
                  it_splits '810180123456', %w(81 180 123 456)  # Tele-gong/Tele-dome
         
     | 
| 
       487 
489 
     | 
    
         
             
                end
         
     | 
| 
       488 
490 
     | 
    
         
             
                describe 'Kenya' do
         
     | 
| 
       489 
491 
     | 
    
         
             
                  it_splits '254201234567', ['254', '20', '1234567'] # Nairobi
         
     | 
| 
         @@ -677,6 +679,7 @@ describe 'country descriptions' do 
     | 
|
| 
       677 
679 
     | 
    
         
             
                  it_splits '250781234567', ['250', '78', '1234567'] # mobile
         
     | 
| 
       678 
680 
     | 
    
         
             
                  it_splits '250721234567', ['250', '72', '1234567'] # mobile
         
     | 
| 
       679 
681 
     | 
    
         
             
                  it_splits '250731234567', ['250', '73', '1234567'] # mobile
         
     | 
| 
      
 682 
     | 
    
         
            +
                  it_splits '250791234567', ['250', '79', '1234567'] # mobile
         
     | 
| 
       680 
683 
     | 
    
         
             
                  it_splits '250251234567', ['250', '25', '1234567'] # fixed
         
     | 
| 
       681 
684 
     | 
    
         
             
                  it_splits '25006123456',  ['250', '06', '123456']  # fixed
         
     | 
| 
       682 
685 
     | 
    
         
             
                end
         
     | 
| 
         @@ -1,32 +1,30 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            require 'spec_helper'
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            describe Phony::CountryCodes do
         
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
       5 
     | 
    
         
            -
               
     | 
| 
       6 
     | 
    
         
            -
                @countries = Phony::CountryCodes.instance
         
     | 
| 
       7 
     | 
    
         
            -
              end
         
     | 
| 
      
 4 
     | 
    
         
            +
              
         
     | 
| 
      
 5 
     | 
    
         
            +
              let(:countries) { Phony::CountryCodes.instance }
         
     | 
| 
       8 
6 
     | 
    
         | 
| 
       9 
7 
     | 
    
         
             
              describe '#[]' do
         
     | 
| 
       10 
8 
     | 
    
         
             
                it 'returns a country' do
         
     | 
| 
       11 
     | 
    
         
            -
                   
     | 
| 
      
 9 
     | 
    
         
            +
                  countries['41'].class.should eql Phony::Country
         
     | 
| 
       12 
10 
     | 
    
         
             
                end
         
     | 
| 
       13 
11 
     | 
    
         
             
              end
         
     | 
| 
       14 
12 
     | 
    
         | 
| 
       15 
13 
     | 
    
         
             
              describe '#country_for' do
         
     | 
| 
       16 
14 
     | 
    
         
             
                it 'returns a country' do
         
     | 
| 
       17 
     | 
    
         
            -
                   
     | 
| 
      
 15 
     | 
    
         
            +
                  countries.send(:country_for, '41').class.should eql Phony::Country
         
     | 
| 
       18 
16 
     | 
    
         
             
                end
         
     | 
| 
       19 
17 
     | 
    
         
             
              end
         
     | 
| 
       20 
18 
     | 
    
         | 
| 
       21 
19 
     | 
    
         
             
              describe '#countrify' do
         
     | 
| 
       22 
20 
     | 
    
         
             
                it 'returns a country' do
         
     | 
| 
       23 
     | 
    
         
            -
                   
     | 
| 
      
 21 
     | 
    
         
            +
                  countries.send(:countrify, '441231212', '41').should eql '41441231212'
         
     | 
| 
       24 
22 
     | 
    
         
             
                end
         
     | 
| 
       25 
23 
     | 
    
         
             
              end
         
     | 
| 
       26 
24 
     | 
    
         
             
              describe '#countrify!' do
         
     | 
| 
       27 
25 
     | 
    
         
             
                it 'in-place replaces the number' do
         
     | 
| 
       28 
26 
     | 
    
         
             
                  number = '441231212'
         
     | 
| 
       29 
     | 
    
         
            -
                   
     | 
| 
      
 27 
     | 
    
         
            +
                  countries.send(:countrify!, number, '41').should eql number
         
     | 
| 
       30 
28 
     | 
    
         | 
| 
       31 
29 
     | 
    
         
             
                  number.should == '41441231212'
         
     | 
| 
       32 
30 
     | 
    
         
             
                end
         
     | 
| 
         @@ -34,127 +32,127 @@ describe Phony::CountryCodes do 
     | 
|
| 
       34 
32 
     | 
    
         | 
| 
       35 
33 
     | 
    
         
             
              describe '#vanity?' do
         
     | 
| 
       36 
34 
     | 
    
         
             
                it 'returns true if so' do
         
     | 
| 
       37 
     | 
    
         
            -
                   
     | 
| 
      
 35 
     | 
    
         
            +
                  countries.vanity?('1800HELLOES').should eql true
         
     | 
| 
       38 
36 
     | 
    
         
             
                end
         
     | 
| 
       39 
37 
     | 
    
         
             
                it 'returns false if not' do
         
     | 
| 
       40 
     | 
    
         
            -
                   
     | 
| 
      
 38 
     | 
    
         
            +
                  countries.vanity?('18001234567').should eql false
         
     | 
| 
       41 
39 
     | 
    
         
             
                end
         
     | 
| 
       42 
40 
     | 
    
         
             
              end
         
     | 
| 
       43 
41 
     | 
    
         | 
| 
       44 
42 
     | 
    
         
             
              describe 'normalize' do
         
     | 
| 
       45 
43 
     | 
    
         
             
                it 'normalizes correctly' do
         
     | 
| 
       46 
     | 
    
         
            -
                   
     | 
| 
      
 44 
     | 
    
         
            +
                  countries.normalize('0041-44-364-35-32').should eql '41443643532'
         
     | 
| 
       47 
45 
     | 
    
         
             
                end
         
     | 
| 
       48 
46 
     | 
    
         
             
                it 'normalizes correctly with CC option' do
         
     | 
| 
       49 
     | 
    
         
            -
                   
     | 
| 
      
 47 
     | 
    
         
            +
                  countries.normalize('044-364-35-32', cc: '41').should eql '41443643532'
         
     | 
| 
       50 
48 
     | 
    
         
             
                end
         
     | 
| 
       51 
49 
     | 
    
         | 
| 
       52 
50 
     | 
    
         
             
                context 'specific countries' do
         
     | 
| 
       53 
51 
     | 
    
         
             
                  it 'handles Congo correctly' do
         
     | 
| 
       54 
     | 
    
         
            -
                     
     | 
| 
       55 
     | 
    
         
            -
                     
     | 
| 
      
 52 
     | 
    
         
            +
                    countries.normalize('+242 0571 73992').should eql '242057173992'
         
     | 
| 
      
 53 
     | 
    
         
            +
                    countries.normalize('+242 2221 15932').should eql '242222115932'
         
     | 
| 
       56 
54 
     | 
    
         
             
                  end
         
     | 
| 
       57 
55 
     | 
    
         
             
                end
         
     | 
| 
       58 
56 
     | 
    
         
             
              end
         
     | 
| 
       59 
57 
     | 
    
         | 
| 
       60 
58 
     | 
    
         
             
              describe 'formatted' do
         
     | 
| 
       61 
59 
     | 
    
         
             
                it 'formats correctly' do
         
     | 
| 
       62 
     | 
    
         
            -
                   
     | 
| 
      
 60 
     | 
    
         
            +
                  countries.formatted('41443643532', :format => :international, :spaces => :-).should eql '+41-44-364-35-32'
         
     | 
| 
       63 
61 
     | 
    
         
             
                end
         
     | 
| 
       64 
62 
     | 
    
         
             
                it 'formats correctly' do
         
     | 
| 
       65 
     | 
    
         
            -
                   
     | 
| 
      
 63 
     | 
    
         
            +
                  countries.formatted('41443643532', :format => :international_relative, :spaces => :-).should eql '0041-44-364-35-32'
         
     | 
| 
       66 
64 
     | 
    
         
             
                end
         
     | 
| 
       67 
65 
     | 
    
         
             
                it 'formats correctly' do
         
     | 
| 
       68 
     | 
    
         
            -
                   
     | 
| 
      
 66 
     | 
    
         
            +
                  countries.formatted('41443643532', :format => :national, :spaces => :-).should eql '044-364-35-32'
         
     | 
| 
       69 
67 
     | 
    
         
             
                end
         
     | 
| 
       70 
68 
     | 
    
         
             
                context 'specific' do
         
     | 
| 
       71 
69 
     | 
    
         
             
                  it 'formats Ireland correctly' do
         
     | 
| 
       72 
     | 
    
         
            -
                     
     | 
| 
      
 70 
     | 
    
         
            +
                    countries.formatted("3533451234", :format => :national).should eql '0345 1234'
         
     | 
| 
       73 
71 
     | 
    
         
             
                  end
         
     | 
| 
       74 
72 
     | 
    
         
             
                  it 'formats Ireland correctly' do
         
     | 
| 
       75 
     | 
    
         
            -
                     
     | 
| 
      
 73 
     | 
    
         
            +
                    countries.formatted("353411231234", :format => :national).should eql '041 123 1234'
         
     | 
| 
       76 
74 
     | 
    
         
             
                  end
         
     | 
| 
       77 
75 
     | 
    
         
             
                  it 'formats Spain correctly' do
         
     | 
| 
       78 
     | 
    
         
            -
                     
     | 
| 
      
 76 
     | 
    
         
            +
                    countries.formatted("34123456789", :format => :national).should eql '123 456 789'
         
     | 
| 
       79 
77 
     | 
    
         
             
                  end
         
     | 
| 
       80 
78 
     | 
    
         
             
                  it 'formats Cambodia correctly' do
         
     | 
| 
       81 
     | 
    
         
            -
                     
     | 
| 
      
 79 
     | 
    
         
            +
                    countries.formatted('85512239123', :format => :national).should eql '012 239 123'
         
     | 
| 
       82 
80 
     | 
    
         
             
                  end
         
     | 
| 
       83 
81 
     | 
    
         
             
                  it 'formats the US correctly' do
         
     | 
| 
       84 
     | 
    
         
            -
                     
     | 
| 
      
 82 
     | 
    
         
            +
                    countries.formatted('18005551212', :format => :national, :spaces => :-).should eql '(800)-555-1212'
         
     | 
| 
       85 
83 
     | 
    
         
             
                  end
         
     | 
| 
       86 
84 
     | 
    
         
             
                  it 'formats the US correctly' do
         
     | 
| 
       87 
     | 
    
         
            -
                     
     | 
| 
      
 85 
     | 
    
         
            +
                    countries.formatted('18005551212', :format => :national, :spaces => :-).should eql '(800)-555-1212'
         
     | 
| 
       88 
86 
     | 
    
         
             
                  end
         
     | 
| 
       89 
87 
     | 
    
         
             
                end
         
     | 
| 
       90 
88 
     | 
    
         
             
                context 'default' do
         
     | 
| 
       91 
89 
     | 
    
         
             
                  it "should format swiss numbers" do
         
     | 
| 
       92 
     | 
    
         
            -
                     
     | 
| 
      
 90 
     | 
    
         
            +
                    countries.formatted('41443643532').should eql '+41 44 364 35 32'
         
     | 
| 
       93 
91 
     | 
    
         
             
                  end
         
     | 
| 
       94 
92 
     | 
    
         
             
                  it "should format swiss service numbers" do
         
     | 
| 
       95 
     | 
    
         
            -
                     
     | 
| 
      
 93 
     | 
    
         
            +
                    countries.formatted('41800112233').should eql '+41 800 112 233'
         
     | 
| 
       96 
94 
     | 
    
         
             
                  end
         
     | 
| 
       97 
95 
     | 
    
         
             
                  it "should format austrian numbers" do
         
     | 
| 
       98 
     | 
    
         
            -
                     
     | 
| 
      
 96 
     | 
    
         
            +
                    countries.formatted('43198110').should eql '+43 1 98110'
         
     | 
| 
       99 
97 
     | 
    
         
             
                  end
         
     | 
| 
       100 
98 
     | 
    
         
             
                  it "should format american numbers" do
         
     | 
| 
       101 
     | 
    
         
            -
                     
     | 
| 
      
 99 
     | 
    
         
            +
                    countries.formatted('18705551122').should eql '+1 (870) 555-1122'
         
     | 
| 
       102 
100 
     | 
    
         
             
                  end
         
     | 
| 
       103 
101 
     | 
    
         
             
                  it "should format irish numbers" do
         
     | 
| 
       104 
     | 
    
         
            -
                     
     | 
| 
      
 102 
     | 
    
         
            +
                    countries.formatted('35311234567').should eql '+353 1 123 4567'
         
     | 
| 
       105 
103 
     | 
    
         
             
                  end
         
     | 
| 
       106 
104 
     | 
    
         
             
                end
         
     | 
| 
       107 
105 
     | 
    
         
             
                describe "international" do
         
     | 
| 
       108 
106 
     | 
    
         
             
                  it "should format north american numbers" do
         
     | 
| 
       109 
     | 
    
         
            -
                     
     | 
| 
      
 107 
     | 
    
         
            +
                    countries.formatted('18091231234', :format => :international).should eql '+1 (809) 123-1234'
         
     | 
| 
       110 
108 
     | 
    
         
             
                  end
         
     | 
| 
       111 
109 
     | 
    
         
             
                  it "should format austrian numbers" do
         
     | 
| 
       112 
     | 
    
         
            -
                     
     | 
| 
      
 110 
     | 
    
         
            +
                    countries.formatted('43198110', :format => :international).should eql '+43 1 98110'
         
     | 
| 
       113 
111 
     | 
    
         
             
                  end
         
     | 
| 
       114 
112 
     | 
    
         
             
                  it "should format austrian numbers" do
         
     | 
| 
       115 
     | 
    
         
            -
                     
     | 
| 
      
 113 
     | 
    
         
            +
                    countries.formatted('43198110', :format => :international_absolute).should eql '+43 1 98110'
         
     | 
| 
       116 
114 
     | 
    
         
             
                  end
         
     | 
| 
       117 
115 
     | 
    
         
             
                  it "should format french numbers" do
         
     | 
| 
       118 
     | 
    
         
            -
                     
     | 
| 
      
 116 
     | 
    
         
            +
                    countries.formatted('33142278186', :format => :+).should eql '+33 1 42 27 81 86'
         
     | 
| 
       119 
117 
     | 
    
         
             
                  end
         
     | 
| 
       120 
118 
     | 
    
         
             
                  it "should format austrian numbers" do
         
     | 
| 
       121 
     | 
    
         
            -
                     
     | 
| 
      
 119 
     | 
    
         
            +
                    countries.formatted('43198110', :format => :international_relative).should eql '0043 1 98110'
         
     | 
| 
       122 
120 
     | 
    
         
             
                  end
         
     | 
| 
       123 
121 
     | 
    
         
             
                  it 'should format liechtensteiner numbers' do
         
     | 
| 
       124 
     | 
    
         
            -
                     
     | 
| 
      
 122 
     | 
    
         
            +
                    countries.formatted('4233841148', :format => :international_relative).should eql '00423 384 11 48'
         
     | 
| 
       125 
123 
     | 
    
         
             
                  end
         
     | 
| 
       126 
124 
     | 
    
         
             
                  it "should format irish numbers" do
         
     | 
| 
       127 
     | 
    
         
            -
                     
     | 
| 
      
 125 
     | 
    
         
            +
                    countries.formatted('35311234567', :format => :international).should eql '+353 1 123 4567'
         
     | 
| 
       128 
126 
     | 
    
         
             
                  end
         
     | 
| 
       129 
127 
     | 
    
         
             
                  it "should format luxembourgian numbers" do
         
     | 
| 
       130 
     | 
    
         
            -
                     
     | 
| 
      
 128 
     | 
    
         
            +
                    countries.formatted('352222809', :format => :international).should eql '+352 22 28 09'
         
     | 
| 
       131 
129 
     | 
    
         
             
                  end
         
     | 
| 
       132 
130 
     | 
    
         
             
                  it "should format luxembourgian 4-digit ndc numbers" do
         
     | 
| 
       133 
     | 
    
         
            -
                     
     | 
| 
      
 131 
     | 
    
         
            +
                    countries.formatted('35226222809', :format => :international).should eql '+352 2622 28 09'
         
     | 
| 
       134 
132 
     | 
    
         
             
                  end
         
     | 
| 
       135 
133 
     | 
    
         
             
                  it "should format luxembourgian mobile numbers" do
         
     | 
| 
       136 
     | 
    
         
            -
                     
     | 
| 
      
 134 
     | 
    
         
            +
                    countries.formatted('352621123456', :format => :international).should eql '+352 621 123 456'
         
     | 
| 
       137 
135 
     | 
    
         
             
                  end
         
     | 
| 
       138 
136 
     | 
    
         
             
                  it "should format luxembourgian city numbers" do
         
     | 
| 
       139 
     | 
    
         
            -
                     
     | 
| 
      
 137 
     | 
    
         
            +
                    countries.formatted('3524123456', :format => :international).should eql '+352 41 23 45 6'
         
     | 
| 
       140 
138 
     | 
    
         
             
                  end
         
     | 
| 
       141 
139 
     | 
    
         
             
                  it "should format luxembourgian machine to machine numbers" do
         
     | 
| 
       142 
     | 
    
         
            -
                     
     | 
| 
      
 140 
     | 
    
         
            +
                    countries.formatted('352602112345678', :format => :international).should eql '+352 6021 12 34 56 78'
         
     | 
| 
       143 
141 
     | 
    
         
             
                  end
         
     | 
| 
       144 
142 
     | 
    
         
             
                  it "should format luxembourgian numbers" do
         
     | 
| 
       145 
     | 
    
         
            -
                     
     | 
| 
      
 143 
     | 
    
         
            +
                    countries.formatted('352370431', :format => :international).should eql '+352 37 04 31'
         
     | 
| 
       146 
144 
     | 
    
         
             
                  end
         
     | 
| 
       147 
145 
     | 
    
         
             
                  it "should format luxembourgian numbers" do
         
     | 
| 
       148 
     | 
    
         
            -
                     
     | 
| 
      
 146 
     | 
    
         
            +
                    countries.formatted('35227855', :format => :international).should eql '+352 27 85 5'
         
     | 
| 
       149 
147 
     | 
    
         
             
                  end
         
     | 
| 
       150 
148 
     | 
    
         
             
                  it "should format nigerian lagosian numbers" do
         
     | 
| 
       151 
     | 
    
         
            -
                     
     | 
| 
      
 149 
     | 
    
         
            +
                    countries.formatted('23414480000', :format => :international).should eql '+234 1 448 0000'
         
     | 
| 
       152 
150 
     | 
    
         
             
                  end
         
     | 
| 
       153 
151 
     | 
    
         
             
                  it "should format nigerian beninese numbers" do
         
     | 
| 
       154 
     | 
    
         
            -
                     
     | 
| 
      
 152 
     | 
    
         
            +
                    countries.formatted('23452123456', :format => :international).should eql '+234 52 123 456'
         
     | 
| 
       155 
153 
     | 
    
         
             
                  end
         
     | 
| 
       156 
154 
     | 
    
         
             
                  it "should format nigerian mobile numbers" do
         
     | 
| 
       157 
     | 
    
         
            -
                     
     | 
| 
      
 155 
     | 
    
         
            +
                    countries.formatted('2347061234567', :format => :international).should eql '+234 706 123 4567'
         
     | 
| 
       158 
156 
     | 
    
         
             
                  end
         
     | 
| 
       159 
157 
     | 
    
         
             
                  context 'with no spaces' do
         
     | 
| 
       160 
158 
     | 
    
         
             
                    it "should format north american numbers" do
         
     | 
| 
         @@ -43,6 +43,18 @@ describe Phony::Country do 
     | 
|
| 
       43 
43 
     | 
    
         
             
                    Phony.normalize('+378903549').should == '3780549903549'
         
     | 
| 
       44 
44 
     | 
    
         
             
                  end
         
     | 
| 
       45 
45 
     | 
    
         
             
                end
         
     | 
| 
      
 46 
     | 
    
         
            +
                describe 'Japan' do
         
     | 
| 
      
 47 
     | 
    
         
            +
                  it 'normalizes correctly' do
         
     | 
| 
      
 48 
     | 
    
         
            +
                    Phony.normalize('+81-03-1234-5634').should == '81312345634'
         
     | 
| 
      
 49 
     | 
    
         
            +
                    Phony.normalize('03-1234-5634', cc: '81').should == '81312345634'
         
     | 
| 
      
 50 
     | 
    
         
            +
                  end
         
     | 
| 
      
 51 
     | 
    
         
            +
                  it 'formats correctly' do
         
     | 
| 
      
 52 
     | 
    
         
            +
                    Phony.format('81312345634').should == '+81-3-1234-5634'
         
     | 
| 
      
 53 
     | 
    
         
            +
                  end
         
     | 
| 
      
 54 
     | 
    
         
            +
                  it 'splits correctly' do
         
     | 
| 
      
 55 
     | 
    
         
            +
                    Phony.split('81312345634').should == %w(81 3 1234 5634)
         
     | 
| 
      
 56 
     | 
    
         
            +
                  end
         
     | 
| 
      
 57 
     | 
    
         
            +
                end
         
     | 
| 
       46 
58 
     | 
    
         
             
              end
         
     | 
| 
       47 
59 
     | 
    
         | 
| 
       48 
60 
     | 
    
         
             
              context "without special cases (with switzerland)" do
         
     | 
| 
         @@ -0,0 +1,85 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'spec_helper'
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            describe Phony::TrunkCode do
         
     | 
| 
      
 4 
     | 
    
         
            +
              
         
     | 
| 
      
 5 
     | 
    
         
            +
              describe '#format' do
         
     | 
| 
      
 6 
     | 
    
         
            +
                it 'is correct' do
         
     | 
| 
      
 7 
     | 
    
         
            +
                  code = described_class.new('0')
         
     | 
| 
      
 8 
     | 
    
         
            +
                  expect(code.format('%s %s')).to eq '0'
         
     | 
| 
      
 9 
     | 
    
         
            +
                end
         
     | 
| 
      
 10 
     | 
    
         
            +
                it 'is correct' do
         
     | 
| 
      
 11 
     | 
    
         
            +
                  code = described_class.new('0', format: true)
         
     | 
| 
      
 12 
     | 
    
         
            +
                  expect(code.format('%s %s')).to eq '0'
         
     | 
| 
      
 13 
     | 
    
         
            +
                end
         
     | 
| 
      
 14 
     | 
    
         
            +
                it 'is correct' do
         
     | 
| 
      
 15 
     | 
    
         
            +
                  code = described_class.new('0', format: false)
         
     | 
| 
      
 16 
     | 
    
         
            +
                  expect(code.format('%s %s')).to eq nil
         
     | 
| 
      
 17 
     | 
    
         
            +
                end
         
     | 
| 
      
 18 
     | 
    
         
            +
                it 'is correct' do
         
     | 
| 
      
 19 
     | 
    
         
            +
                  code = described_class.new('06')
         
     | 
| 
      
 20 
     | 
    
         
            +
                  expect(code.format('%s %s')).to eq '06'
         
     | 
| 
      
 21 
     | 
    
         
            +
                end
         
     | 
| 
      
 22 
     | 
    
         
            +
                it 'is correct' do
         
     | 
| 
      
 23 
     | 
    
         
            +
                  code = described_class.new('06', format: true)
         
     | 
| 
      
 24 
     | 
    
         
            +
                  expect(code.format('%s %s')).to eq '06'
         
     | 
| 
      
 25 
     | 
    
         
            +
                end
         
     | 
| 
      
 26 
     | 
    
         
            +
                it 'is correct' do
         
     | 
| 
      
 27 
     | 
    
         
            +
                  code = described_class.new('06', format: false)
         
     | 
| 
      
 28 
     | 
    
         
            +
                  expect(code.format('%s %s')).to eq nil
         
     | 
| 
      
 29 
     | 
    
         
            +
                end
         
     | 
| 
      
 30 
     | 
    
         
            +
              end
         
     | 
| 
      
 31 
     | 
    
         
            +
              
         
     | 
| 
      
 32 
     | 
    
         
            +
              describe '#normalize' do
         
     | 
| 
      
 33 
     | 
    
         
            +
                it 'is correct' do
         
     | 
| 
      
 34 
     | 
    
         
            +
                  code = described_class.new('0')
         
     | 
| 
      
 35 
     | 
    
         
            +
                  expect(code.normalize('0123')).to eq '0123'
         
     | 
| 
      
 36 
     | 
    
         
            +
                end
         
     | 
| 
      
 37 
     | 
    
         
            +
                it 'is correct' do
         
     | 
| 
      
 38 
     | 
    
         
            +
                  code = described_class.new('0', normalize: true)
         
     | 
| 
      
 39 
     | 
    
         
            +
                  expect(code.normalize('0123')).to eq '0123'
         
     | 
| 
      
 40 
     | 
    
         
            +
                end
         
     | 
| 
      
 41 
     | 
    
         
            +
                it 'is correct' do
         
     | 
| 
      
 42 
     | 
    
         
            +
                  code = described_class.new('0', normalize: false)
         
     | 
| 
      
 43 
     | 
    
         
            +
                  expect(code.normalize('0123')).to eq '0123'
         
     | 
| 
      
 44 
     | 
    
         
            +
                end
         
     | 
| 
      
 45 
     | 
    
         
            +
                it 'is correct' do
         
     | 
| 
      
 46 
     | 
    
         
            +
                  code = described_class.new('06')
         
     | 
| 
      
 47 
     | 
    
         
            +
                  expect(code.normalize('06123')).to eq '06123'
         
     | 
| 
      
 48 
     | 
    
         
            +
                end
         
     | 
| 
      
 49 
     | 
    
         
            +
                it 'is correct' do
         
     | 
| 
      
 50 
     | 
    
         
            +
                  code = described_class.new('06', normalize: true)
         
     | 
| 
      
 51 
     | 
    
         
            +
                  expect(code.normalize('06123')).to eq '06123'
         
     | 
| 
      
 52 
     | 
    
         
            +
                end
         
     | 
| 
      
 53 
     | 
    
         
            +
                it 'is correct' do
         
     | 
| 
      
 54 
     | 
    
         
            +
                  code = described_class.new('06', normalize: false)
         
     | 
| 
      
 55 
     | 
    
         
            +
                  expect(code.normalize('0123')).to eq '0123'
         
     | 
| 
      
 56 
     | 
    
         
            +
                end
         
     | 
| 
      
 57 
     | 
    
         
            +
              end
         
     | 
| 
      
 58 
     | 
    
         
            +
              
         
     | 
| 
      
 59 
     | 
    
         
            +
              describe '#split' do
         
     | 
| 
      
 60 
     | 
    
         
            +
                it 'is correct' do
         
     | 
| 
      
 61 
     | 
    
         
            +
                  code = described_class.new('0')
         
     | 
| 
      
 62 
     | 
    
         
            +
                  expect(code.split('0123')).to eq [code, '0123']
         
     | 
| 
      
 63 
     | 
    
         
            +
                end
         
     | 
| 
      
 64 
     | 
    
         
            +
                it 'is correct' do
         
     | 
| 
      
 65 
     | 
    
         
            +
                  code = described_class.new('0', split: true)
         
     | 
| 
      
 66 
     | 
    
         
            +
                  expect(code.split('0123')).to eq [code, '123']
         
     | 
| 
      
 67 
     | 
    
         
            +
                end
         
     | 
| 
      
 68 
     | 
    
         
            +
                it 'is correct' do
         
     | 
| 
      
 69 
     | 
    
         
            +
                  code = described_class.new('0', split: false)
         
     | 
| 
      
 70 
     | 
    
         
            +
                  expect(code.split('0123')).to eq [code, '0123']
         
     | 
| 
      
 71 
     | 
    
         
            +
                end
         
     | 
| 
      
 72 
     | 
    
         
            +
                it 'is correct' do
         
     | 
| 
      
 73 
     | 
    
         
            +
                  code = described_class.new('06')
         
     | 
| 
      
 74 
     | 
    
         
            +
                  expect(code.split('06123')).to eq [code, '06123']
         
     | 
| 
      
 75 
     | 
    
         
            +
                end
         
     | 
| 
      
 76 
     | 
    
         
            +
                it 'is correct' do
         
     | 
| 
      
 77 
     | 
    
         
            +
                  code = described_class.new('06', split: true)
         
     | 
| 
      
 78 
     | 
    
         
            +
                  expect(code.split('06123')).to eq [code, '123']
         
     | 
| 
      
 79 
     | 
    
         
            +
                end
         
     | 
| 
      
 80 
     | 
    
         
            +
                it 'is correct' do
         
     | 
| 
      
 81 
     | 
    
         
            +
                  code = described_class.new('06', split: false)
         
     | 
| 
      
 82 
     | 
    
         
            +
                  expect(code.split('06123')).to eq [code, '06123']
         
     | 
| 
      
 83 
     | 
    
         
            +
                end
         
     | 
| 
      
 84 
     | 
    
         
            +
              end
         
     | 
| 
      
 85 
     | 
    
         
            +
            end
         
     | 
    
        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. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 2.19.1
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Florian Hanke
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire:
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2021- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2021-06-09 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
         
     | 
| 
         @@ -93,6 +93,7 @@ files: 
     | 
|
| 
       93 
93 
     | 
    
         
             
            - spec/lib/phony/national_splitters/none_spec.rb
         
     | 
| 
       94 
94 
     | 
    
         
             
            - spec/lib/phony/national_splitters/regex_spec.rb
         
     | 
| 
       95 
95 
     | 
    
         
             
            - spec/lib/phony/national_splitters/variable_spec.rb
         
     | 
| 
      
 96 
     | 
    
         
            +
            - spec/lib/phony/trunk_code_spec.rb
         
     | 
| 
       96 
97 
     | 
    
         
             
            - spec/lib/phony/vanity_spec.rb
         
     | 
| 
       97 
98 
     | 
    
         
             
            - spec/lib/phony_spec.rb
         
     | 
| 
       98 
99 
     | 
    
         
             
            homepage: https://github.com/floere/phony
         
     | 
| 
         @@ -121,6 +122,7 @@ summary: Fast international phone number (E164 standard) normalizing, splitting 
     | 
|
| 
       121 
122 
     | 
    
         
             
              formatting.
         
     | 
| 
       122 
123 
     | 
    
         
             
            test_files:
         
     | 
| 
       123 
124 
     | 
    
         
             
            - spec/lib/phony_spec.rb
         
     | 
| 
      
 125 
     | 
    
         
            +
            - spec/lib/phony/trunk_code_spec.rb
         
     | 
| 
       124 
126 
     | 
    
         
             
            - spec/lib/phony/country_spec.rb
         
     | 
| 
       125 
127 
     | 
    
         
             
            - spec/lib/phony/national_code_spec.rb
         
     | 
| 
       126 
128 
     | 
    
         
             
            - spec/lib/phony/countries_spec.rb
         
     |