phony 2.20.13 → 2.22.2

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.
Files changed (79) hide show
  1. checksums.yaml +4 -4
  2. data/README.textile +1 -1
  3. data/lib/phony/config.rb +25 -26
  4. data/lib/phony/countries/argentina.rb +311 -314
  5. data/lib/phony/countries/austria.rb +71 -72
  6. data/lib/phony/countries/bangladesh.rb +27 -28
  7. data/lib/phony/countries/belarus.rb +110 -111
  8. data/lib/phony/countries/brazil.rb +92 -92
  9. data/lib/phony/countries/cambodia.rb +9 -9
  10. data/lib/phony/countries/china.rb +22 -21
  11. data/lib/phony/countries/croatia.rb +6 -5
  12. data/lib/phony/countries/georgia.rb +84 -84
  13. data/lib/phony/countries/germany.rb +4067 -4068
  14. data/lib/phony/countries/guinea.rb +8 -8
  15. data/lib/phony/countries/india.rb +31 -34
  16. data/lib/phony/countries/indonesia.rb +57 -46
  17. data/lib/phony/countries/ireland.rb +4 -5
  18. data/lib/phony/countries/italy.rb +54 -53
  19. data/lib/phony/countries/japan.rb +456 -456
  20. data/lib/phony/countries/kyrgyzstan.rb +109 -109
  21. data/lib/phony/countries/latvia.rb +34 -34
  22. data/lib/phony/countries/libya.rb +106 -106
  23. data/lib/phony/countries/malaysia.rb +12 -12
  24. data/lib/phony/countries/moldova.rb +42 -42
  25. data/lib/phony/countries/montenegro.rb +24 -20
  26. data/lib/phony/countries/myanmar.rb +39 -39
  27. data/lib/phony/countries/namibia.rb +35 -29
  28. data/lib/phony/countries/nepal.rb +60 -62
  29. data/lib/phony/countries/netherlands.rb +13 -13
  30. data/lib/phony/countries/pakistan.rb +135 -111
  31. data/lib/phony/countries/paraguay.rb +135 -135
  32. data/lib/phony/countries/russia_kazakhstan_abkhasia_south_ossetia.rb +125 -128
  33. data/lib/phony/countries/saudi_arabia.rb +5 -5
  34. data/lib/phony/countries/serbia.rb +47 -39
  35. data/lib/phony/countries/somalia.rb +18 -18
  36. data/lib/phony/countries/south_korea.rb +16 -13
  37. data/lib/phony/countries/sweden.rb +28 -28
  38. data/lib/phony/countries/taiwan.rb +20 -19
  39. data/lib/phony/countries/tajikistan.rb +70 -70
  40. data/lib/phony/countries/turkmenistan.rb +65 -65
  41. data/lib/phony/countries/ukraine.rb +607 -607
  42. data/lib/phony/countries/united_kingdom.rb +66 -66
  43. data/lib/phony/countries/uruguay.rb +40 -41
  44. data/lib/phony/countries/vietnam.rb +19 -17
  45. data/lib/phony/countries/zimbabwe.rb +31 -31
  46. data/lib/phony/countries.rb +457 -443
  47. data/lib/phony/country.rb +44 -44
  48. data/lib/phony/country_codes.rb +67 -60
  49. data/lib/phony/dsl.rb +23 -26
  50. data/lib/phony/local_splitters/fixed.rb +23 -30
  51. data/lib/phony/local_splitters/regex.rb +30 -31
  52. data/lib/phony/national_code.rb +7 -10
  53. data/lib/phony/national_splitters/default.rb +9 -11
  54. data/lib/phony/national_splitters/dsl.rb +8 -18
  55. data/lib/phony/national_splitters/fixed.rb +12 -15
  56. data/lib/phony/national_splitters/none.rb +7 -11
  57. data/lib/phony/national_splitters/regex.rb +13 -17
  58. data/lib/phony/national_splitters/variable.rb +37 -38
  59. data/lib/phony/trunk_code.rb +20 -20
  60. data/lib/phony/vanity.rb +12 -13
  61. data/lib/phony.rb +84 -84
  62. metadata +5 -42
  63. data/spec/functional/config_spec.rb +0 -44
  64. data/spec/functional/plausibility_spec.rb +0 -689
  65. data/spec/lib/phony/countries_spec.rb +0 -1459
  66. data/spec/lib/phony/country_codes_spec.rb +0 -227
  67. data/spec/lib/phony/country_spec.rb +0 -104
  68. data/spec/lib/phony/dsl_spec.rb +0 -28
  69. data/spec/lib/phony/local_splitters/fixed_spec.rb +0 -56
  70. data/spec/lib/phony/local_splitters/regex_spec.rb +0 -94
  71. data/spec/lib/phony/national_code_spec.rb +0 -61
  72. data/spec/lib/phony/national_splitters/default_spec.rb +0 -34
  73. data/spec/lib/phony/national_splitters/fixed_spec.rb +0 -45
  74. data/spec/lib/phony/national_splitters/none_spec.rb +0 -28
  75. data/spec/lib/phony/national_splitters/regex_spec.rb +0 -23
  76. data/spec/lib/phony/national_splitters/variable_spec.rb +0 -35
  77. data/spec/lib/phony/trunk_code_spec.rb +0 -85
  78. data/spec/lib/phony/vanity_spec.rb +0 -30
  79. data/spec/lib/phony_spec.rb +0 -70
@@ -1,23 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Phony::NationalSplitters::Regex do
4
-
5
- describe 'instance_for' do
6
- it 'caches correctly (not)' do
7
- described_class.instance_for(//).should_not equal(described_class.instance_for(//))
8
- end
9
- end
10
-
11
- describe 'split' do
12
- context 'without on_fail' do
13
- let(:splitter) { described_class.instance_for(/^(123)\d+$/) }
14
- end
15
- context 'with on_fail 2' do
16
- let(:splitter) { described_class.instance_for(/^(123)\d+$/, 2) }
17
- it 'uses the on_fail_take' do
18
- splitter.split('23456789').should == [nil, '23', '456789']
19
- end
20
- end
21
- end
22
-
23
- end
@@ -1,35 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Phony::NationalSplitters::Variable do
4
-
5
- describe 'split' do
6
- context 'normal' do
7
- let(:splitter) { Phony::NationalSplitters::Variable.new 4, ['1', '316', '67', '68', '669', '711'] }
8
- it "handles Vienna" do
9
- expect(splitter.split('198110')).to eq [nil, '1', '98110']
10
- end
11
- it "handles some mobile services" do
12
- expect(splitter.split('66914093902')).to eq [nil, '669', '14093902']
13
- end
14
- it "handles Graz" do
15
- expect(splitter.split('3161234567891')).to eq [nil, '316', '1234567891']
16
- end
17
- it "handles Rohrau" do
18
- expect(splitter.split('2164123456789')).to eq [nil, '2164', '123456789']
19
- end
20
- it 'has an NDC length of 3' do
21
- expect(splitter.length).to eq (1..3)
22
- end
23
- end
24
- context 'special handling for using the variable size splitter for Swiss service numbers' do
25
- let(:splitter) { Phony::NationalSplitters::Variable.new 2, ['800'] }
26
- it "should handle swiss service numbers" do
27
- expect(splitter.split('800223344')).to eq [nil, '800', '223344']
28
- end
29
- it 'has an NDC length of 3' do
30
- expect(splitter.length).to eq (3..3)
31
- end
32
- end
33
- end
34
-
35
- end
@@ -1,85 +0,0 @@
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
@@ -1,30 +0,0 @@
1
- # encoding: utf-8
2
- #
3
- require 'spec_helper'
4
-
5
- describe Phony::Vanity do
6
-
7
- let(:vanity) { described_class }
8
-
9
- describe '.replace' do
10
- it 'replaces letters with digits' do
11
- expect(vanity.replace('1-800-HELLO')).to eq '1-800-43556'
12
- end
13
- end
14
-
15
- describe '.vanity?' do
16
- it 'returns true on a vanity number' do
17
- expect(vanity.vanity?('800HELLOES')).to eq true
18
- end
19
- it 'returns false on a non-vanity number' do
20
- expect(vanity.vanity?('8004355637')).to eq false
21
- end
22
- end
23
-
24
- describe '.normalized' do
25
- it 'normalizes the vanity number' do
26
- expect(vanity.normalized('1-800-HELLO')).to eq '1800HELLO'
27
- end
28
- end
29
-
30
- end
@@ -1,70 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Phony::NormalizationError do
4
- it 'is correctly raised on normalize' do
5
- expect do
6
- Phony.normalize('000')
7
- end.to raise_error(Phony::NormalizationError)
8
- end
9
- it 'is correctly raised on normalize' do
10
- expect do
11
- Phony.normalize('000')
12
- end.to raise_error(%Q{Phony could not normalize the given number. Is it a phone number?})
13
- end
14
- it 'is correctly raised on normalize!' do
15
- expect do
16
- Phony.normalize!('000')
17
- end.to raise_error(Phony::NormalizationError)
18
- end
19
- it 'is correctly raised on normalize!' do
20
- expect do
21
- Phony.normalize!('000')
22
- end.to raise_error(%Q{Phony could not normalize the given number. Is it a phone number?})
23
- end
24
- end
25
-
26
- describe Phony::SplittingError do
27
- it 'is correctly raised on split' do
28
- expect do
29
- Phony.split('000')
30
- end.to raise_error(Phony::SplittingError)
31
- end
32
- it 'is correctly raised on split' do
33
- expect do
34
- Phony.split('000')
35
- end.to raise_error(%Q{Phony could not split the given number. Is "000" a phone number?})
36
- end
37
- it 'is correctly raised on split!' do
38
- expect do
39
- Phony.split!('000')
40
- end.to raise_error(Phony::SplittingError)
41
- end
42
- it 'is correctly raised on split!' do
43
- expect do
44
- Phony.split!('000')
45
- end.to raise_error(%Q{Phony could not split the given number. Is it a phone number?})
46
- end
47
- end
48
-
49
- describe Phony::FormattingError do
50
- it 'is correctly raised on format' do
51
- expect do
52
- Phony.format('000')
53
- end.to raise_error(Phony::FormattingError)
54
- end
55
- it 'is correctly raised on format' do
56
- expect do
57
- Phony.format('000')
58
- end.to raise_error(%Q{Phony could not format the given number. Is it a phone number?})
59
- end
60
- it 'is correctly raised on format!' do
61
- expect do
62
- Phony.format!('000')
63
- end.to raise_error(Phony::FormattingError)
64
- end
65
- it 'is correctly raised on format!' do
66
- expect do
67
- Phony.format!('000')
68
- end.to raise_error(%Q{Phony could not format the given number. Is it a phone number?})
69
- end
70
- end