phony 1.6.0 → 1.6.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -22,10 +22,11 @@ module Phony
22
22
  @instance ||= new
23
23
  end
24
24
 
25
+ @@normalizing_pattern = /^0+|\D/
25
26
  def normalize number
26
27
  # Remove non-digit chars.
27
28
  #
28
- number.gsub! /\D*/, EMPTY_STRING
29
+ number.gsub! @@normalizing_pattern, EMPTY_STRING
29
30
  national_handler, cc, rest = split_cc number
30
31
  @normalize_format % [cc, national_handler.normalize(rest)]
31
32
  end
@@ -1,9 +1,9 @@
1
1
  module Phony
2
-
2
+
3
3
  # NationalCodes have a special numbers splitter, a national code splitter and a local code splitter.
4
4
  #
5
5
  class NationalCode
6
-
6
+
7
7
  #
8
8
  #
9
9
  def initialize national_splitter, local_splitter, normalize = nil
@@ -11,7 +11,7 @@ module Phony
11
11
  @local_splitter = local_splitter
12
12
  @normalize = normalize != false
13
13
  end
14
-
14
+
15
15
  # Split gets a number without country code and splits it into
16
16
  # its parts.
17
17
  #
@@ -20,7 +20,7 @@ module Phony
20
20
  return ndc unless rest
21
21
  [ndc, *@local_splitter.split(rest)]
22
22
  end
23
-
23
+
24
24
  # Split gets a number without country code and removes a relative zero.
25
25
  #
26
26
  # Note: Some cases, like Italy, don't remove the relative zero.
@@ -29,7 +29,7 @@ module Phony
29
29
  return national_number unless @normalize
30
30
  national_number.gsub(/^0+/, '')
31
31
  end
32
-
32
+
33
33
  end
34
-
34
+
35
35
  end
@@ -86,6 +86,7 @@ describe 'country descriptions' do
86
86
  end
87
87
  it 'handles german numbers' do
88
88
  Phony.split('493038625454').should == ['49', '30', '386', '25454'] # Berlin
89
+ Phony.split('4932221764542').should == ['49', '32', '221', '764542'] # Non-Geographical
89
90
  Phony.split('4922137683323').should == ['49', '221', '376', '83323'] # Cologne
90
91
  Phony.split('497614767676').should == ['49', '761', '476', '7676'] # Freiburg im Breisgau
91
92
  Phony.split('4921535100').should == ['49', '2153', '510', '0'] # Nettetal-Lobberich
@@ -3,7 +3,7 @@
3
3
  require 'spec_helper'
4
4
 
5
5
  describe Phony do
6
-
6
+
7
7
  describe 'nil cases' do
8
8
  it "should raise on normalize nil" do
9
9
  expect {
@@ -21,7 +21,7 @@ describe Phony do
21
21
  }.to raise_error(ArgumentError, "Phone number cannot be nil. Use e.g. number && Phony.split(number).")
22
22
  end
23
23
  end
24
-
24
+
25
25
  describe "normalize" do
26
26
  describe "some examples" do
27
27
  it "should normalize an already normalized number" do
@@ -30,8 +30,8 @@ describe Phony do
30
30
  it "should normalize a format number" do
31
31
  Phony.normalize('+41 44 364 35 33').should == '41443643533'
32
32
  end
33
- it "should normalize a format number" do
34
- Phony.normalize('+41 44 364 35 33').should == '41443643533'
33
+ it "should normalize a 00 number" do
34
+ Phony.normalize('0041 44 364 35 33').should == '41443643533'
35
35
  end
36
36
  it "should normalize a service number" do
37
37
  Phony.normalize('+41 800 11 22 33').should == '41800112233'
@@ -59,13 +59,13 @@ describe Phony do
59
59
  end
60
60
  end
61
61
  end
62
-
62
+
63
63
  describe 'formatted' do
64
64
  it 'is an alias of format' do
65
65
  Phony.formatted('41443643532').should == '+41 44 364 35 32'
66
66
  end
67
67
  end
68
-
68
+
69
69
  describe "format" do
70
70
  describe "default" do
71
71
  it "should format swiss numbers" do
@@ -182,7 +182,7 @@ describe Phony do
182
182
  end
183
183
  end
184
184
  end
185
-
185
+
186
186
  context 'minimal cases' do
187
187
  context 'normalizing' do
188
188
  it 'handles completely crazy "numbers"' do
@@ -217,7 +217,7 @@ describe Phony do
217
217
  end
218
218
  end
219
219
  end
220
-
220
+
221
221
  context "speed" do
222
222
  before(:each) do
223
223
  @phone_numbers = [
@@ -256,7 +256,7 @@ describe Phony do
256
256
  end
257
257
  end
258
258
  end
259
-
259
+
260
260
  describe 'vanity' do
261
261
  describe 'vanity_number?' do
262
262
  it {Phony.vanity?('41800 WEGGLI').should be_true}
@@ -266,7 +266,7 @@ describe Phony do
266
266
  it {Phony.vanity?('41900 KURZ').should be_false}
267
267
  it {Phony.vanity?('41 44 364 35 32').should be_false}
268
268
  end
269
-
269
+
270
270
  describe 'vanity_to_number' do
271
271
  it {Phony.vanity_to_number('41800WEGGLI').should == '41800934454'}
272
272
  it {Phony.vanity_to_number('41800weggli').should == '41800934454'}
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: phony
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.0
4
+ version: 1.6.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,8 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-10-26 00:00:00.000000000 +11:00
13
- default_executable:
12
+ date: 2011-11-25 00:00:00.000000000 Z
14
13
  dependencies: []
15
14
  description: ! 'Fast international phone number (E164 standard) normalizing, splitting
16
15
  and formatting. Lots of formatting options: International (+.., 00..), national
@@ -59,7 +58,6 @@ files:
59
58
  - spec/lib/phony/national_splitters/variable_spec.rb
60
59
  - spec/lib/phony/vanity_spec.rb
61
60
  - spec/lib/phony_spec.rb
62
- has_rdoc: true
63
61
  homepage: http://github.com/floere/phony
64
62
  licenses: []
65
63
  post_install_message:
@@ -80,7 +78,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
80
78
  version: '0'
81
79
  requirements: []
82
80
  rubyforge_project:
83
- rubygems_version: 1.6.2
81
+ rubygems_version: 1.8.11
84
82
  signing_key:
85
83
  specification_version: 3
86
84
  summary: Fast international phone number (E164 standard) normalizing, splitting and