norwegian_phone 0.0.8 → 0.0.9

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,3 @@
1
1
  module NorwegianPhone
2
- VERSION = "0.0.8"
2
+ VERSION = "0.0.9"
3
3
  end
@@ -1,46 +1,50 @@
1
1
  module NorwegianPhone
2
2
 
3
- def normalize(number)
4
- number ||= ""
5
- number = number.gsub(/[.\- \t\r\n\(\)]/, '')
6
- number.gsub!(/^(\+)(.*)/) { |m| $1 + $2.gsub(/\+/, '') }
7
- number.gsub!(/^00/, '+')
8
- number.gsub!(/^\+47/, '')
9
- number.gsub!(/^\+*0+/, '+')
10
- number.gsub!(/^47/, '') if number.size > 8
11
- number
12
- end
13
-
14
- def msisdnize(number)
15
- return nil if missing?(number)
3
+ class << self
4
+ def normalize(number)
5
+ number ||= ""
6
+ number = number.gsub(/[.\- \t\r\n\(\)]/, '')
7
+ number.gsub!(/^(\+)(.*)/) { |m| $1 + $2.gsub(/\+/, '') }
8
+ number.gsub!(/^00/, '+')
9
+ number.gsub!(/^\+47/, '')
10
+ number.gsub!(/^\+*0+/, '+')
11
+ number.gsub!(/^47/, '') if number.size > 8
12
+ number
13
+ end
16
14
 
17
- number = normalize(number)
18
- number = "47#{number}" unless number =~ /^\+/
19
- number.gsub!(/^\+/, '')
20
- number
21
- end
15
+ def msisdnize(number)
16
+ return nil if missing?(number)
22
17
 
23
- def unmsisdnize(number)
24
- normalize("+#{number}") if number
25
- end
18
+ number = normalize(number)
19
+ number = "47#{number}" unless number =~ /^\+/
20
+ number.gsub!(/^\+/, '')
21
+ number
22
+ end
26
23
 
27
- def number_valid?(number)
28
- return false if number.nil?
29
- return false if number == ""
30
- case number.strip
31
- when /\A\+?[0-9[:space:]]+\z/
32
- return true
24
+ def unmsisdnize(number)
25
+ normalize("+#{number}") if number
33
26
  end
34
- false
35
- end
36
27
 
37
- # Norway-centric. True if not a norwegian number.
38
- def international?(number)
39
- !!(normalize(number) =~ /^\+/)
40
- end
28
+ def number_valid?(number)
29
+ return false if number.nil?
30
+ return false if number == ""
31
+ case number.strip
32
+ when /\A\+?[0-9[:space:]]+\z/
33
+ return true
34
+ end
35
+ false
36
+ end
41
37
 
42
- private
43
- def missing?(number)
44
- number.nil? || (number == "")
38
+ # Norway-centric. True if not a norwegian number.
39
+ def international?(number)
40
+ !!(normalize(number) =~ /^\+/)
45
41
  end
42
+
43
+ private
44
+
45
+ def missing?(number)
46
+ number.nil? || (number == "")
47
+ end
48
+
49
+ end
46
50
  end
@@ -2,14 +2,14 @@ require 'spec_helper'
2
2
 
3
3
  describe NorwegianPhone, "#international" do
4
4
  it "knows a norse number when it sees one" do
5
- NorwegianPhoneWrapper.international?("12345678").should == false
5
+ NorwegianPhone.international?("12345678").should == false
6
6
  end
7
7
 
8
8
  it "knows a norse number even when it looks international" do
9
- NorwegianPhoneWrapper.international?("+4712345678").should == false
9
+ NorwegianPhone.international?("+4712345678").should == false
10
10
  end
11
11
 
12
12
  it "correctly identifies a non-norwegian international number" do
13
- NorwegianPhoneWrapper.international?("+4612345678").should == true
13
+ NorwegianPhone.international?("+4612345678").should == true
14
14
  end
15
15
  end
data/spec/isdnize_spec.rb CHANGED
@@ -3,28 +3,28 @@ require 'spec_helper'
3
3
  describe NorwegianPhone, "#msisdnize" do
4
4
 
5
5
  it "ignores nils" do
6
- NorwegianPhoneWrapper.msisdnize(nil).should eq(nil)
6
+ NorwegianPhone.msisdnize(nil).should eq(nil)
7
7
  end
8
8
 
9
9
  it "ignores empty strings" do
10
- NorwegianPhoneWrapper.msisdnize("").should eq(nil)
10
+ NorwegianPhone.msisdnize("").should eq(nil)
11
11
  end
12
12
 
13
13
  it "adds country code to naked norwegian-ish numbers" do
14
- NorwegianPhoneWrapper.msisdnize("12345678").should eq("4712345678")
14
+ NorwegianPhone.msisdnize("12345678").should eq("4712345678")
15
15
  end
16
16
 
17
17
  it "removes +sign from international number" do
18
- NorwegianPhoneWrapper.msisdnize("+123456789").should eq("123456789")
18
+ NorwegianPhone.msisdnize("+123456789").should eq("123456789")
19
19
  end
20
20
  end
21
21
 
22
22
  describe NorwegianPhone, "#unmsisdnize" do
23
23
  it "localizes norwegian numbers" do
24
- NorwegianPhoneWrapper.unmsisdnize("4712345678").should eq("12345678")
24
+ NorwegianPhone.unmsisdnize("4712345678").should eq("12345678")
25
25
  end
26
26
 
27
27
  it "adds a + to international numbers" do
28
- NorwegianPhoneWrapper.unmsisdnize("123456789").should eq("+123456789")
28
+ NorwegianPhone.unmsisdnize("123456789").should eq("+123456789")
29
29
  end
30
30
  end
@@ -6,54 +6,54 @@ describe NorwegianPhone, "#normalize" do
6
6
 
7
7
  context "with country code" do
8
8
  it "deletes prepended country code (47)" do
9
- NorwegianPhoneWrapper.normalize("4712345678").should == number
9
+ NorwegianPhone.normalize("4712345678").should == number
10
10
  end
11
11
 
12
12
  it "deletes prepended 0047" do
13
- NorwegianPhoneWrapper.normalize("004712345678").should == number
13
+ NorwegianPhone.normalize("004712345678").should == number
14
14
  end
15
15
 
16
16
  it "deletes prepended +47" do
17
- NorwegianPhoneWrapper.normalize("+4712345678").should == number
17
+ NorwegianPhone.normalize("+4712345678").should == number
18
18
  end
19
19
 
20
20
  it "leaves extra digits intact" do
21
- NorwegianPhoneWrapper.normalize("+47123456789").should == "#{number}9"
21
+ NorwegianPhone.normalize("+47123456789").should == "#{number}9"
22
22
  end
23
23
 
24
24
  it "removes extraneous prepended +signs" do
25
- NorwegianPhoneWrapper.normalize("++4712345678").should == number
25
+ NorwegianPhone.normalize("++4712345678").should == number
26
26
  end
27
27
 
28
28
  it "strips interspersed +signs" do
29
- NorwegianPhoneWrapper.normalize("+47123+45+678").should == number
29
+ NorwegianPhone.normalize("+47123+45+678").should == number
30
30
  end
31
31
  end
32
32
 
33
33
  context "without country code" do
34
34
  it "leaves extra digits intact" do
35
- NorwegianPhoneWrapper.normalize("123456789").should == "#{number}9"
35
+ NorwegianPhone.normalize("123456789").should == "#{number}9"
36
36
  end
37
37
  end
38
38
 
39
39
  it "strips extraneous surrounding whitespace" do
40
- NorwegianPhoneWrapper.normalize("\t\n \r\n12345678 \t\r\n\n ").should == number
40
+ NorwegianPhone.normalize("\t\n \r\n12345678 \t\r\n\n ").should == number
41
41
  end
42
42
 
43
43
  it "strips all internal whitespace" do
44
- NorwegianPhoneWrapper.normalize("12 345 67 8").should == number
44
+ NorwegianPhone.normalize("12 345 67 8").should == number
45
45
  end
46
46
 
47
47
  it "strips dashes" do
48
- NorwegianPhoneWrapper.normalize("12-34-56-78").should == number
48
+ NorwegianPhone.normalize("12-34-56-78").should == number
49
49
  end
50
50
 
51
51
  it "strips periods" do
52
- NorwegianPhoneWrapper.normalize("12.34.56.78").should == number
52
+ NorwegianPhone.normalize("12.34.56.78").should == number
53
53
  end
54
54
 
55
55
  it "strips parentheses" do
56
- NorwegianPhoneWrapper.normalize("(123)45678").should == number
56
+ NorwegianPhone.normalize("(123)45678").should == number
57
57
  end
58
58
 
59
59
 
@@ -63,39 +63,39 @@ describe NorwegianPhone, "#normalize" do
63
63
  let(:number) { "+123456789" }
64
64
 
65
65
  it "replaces 0 with +" do
66
- NorwegianPhoneWrapper.normalize("0123456789").should == number
66
+ NorwegianPhone.normalize("0123456789").should == number
67
67
  end
68
68
 
69
69
  it "replaces 00 with +" do
70
- NorwegianPhoneWrapper.normalize("00123456789").should == number
70
+ NorwegianPhone.normalize("00123456789").should == number
71
71
  end
72
72
 
73
73
  it "leaves + alone" do
74
- NorwegianPhoneWrapper.normalize("+123456789").should == number
74
+ NorwegianPhone.normalize("+123456789").should == number
75
75
  end
76
76
 
77
77
  it "strips extraneous +signs" do
78
- NorwegianPhoneWrapper.normalize("++123456789").should == number
78
+ NorwegianPhone.normalize("++123456789").should == number
79
79
  end
80
80
 
81
81
  it "strips extraneous surrounding whitespace" do
82
- NorwegianPhoneWrapper.normalize("\t\n \r\n+123456789 \t\r\n\n ").should == number
82
+ NorwegianPhone.normalize("\t\n \r\n+123456789 \t\r\n\n ").should == number
83
83
  end
84
84
 
85
85
  it "strips all internal whitespace" do
86
- NorwegianPhoneWrapper.normalize("+12 345 67 89").should == number
86
+ NorwegianPhone.normalize("+12 345 67 89").should == number
87
87
  end
88
88
 
89
89
  it "strips dashes" do
90
- NorwegianPhoneWrapper.normalize("+12-34-56-789").should == number
90
+ NorwegianPhone.normalize("+12-34-56-789").should == number
91
91
  end
92
92
 
93
93
  it "strips periods" do
94
- NorwegianPhoneWrapper.normalize("+12.34.56.789").should == number
94
+ NorwegianPhone.normalize("+12.34.56.789").should == number
95
95
  end
96
96
 
97
97
  it "strips parentheses" do
98
- NorwegianPhoneWrapper.normalize("+(123)456789").should == number
98
+ NorwegianPhone.normalize("+(123)456789").should == number
99
99
  end
100
100
  end
101
101
 
data/spec/spec_helper.rb CHANGED
@@ -2,7 +2,3 @@ require 'rubygems'
2
2
  require 'bundler/setup'
3
3
 
4
4
  require 'norwegian_phone'
5
-
6
- class NorwegianPhoneWrapper
7
- extend NorwegianPhone
8
- end
@@ -2,40 +2,40 @@ require 'spec_helper'
2
2
 
3
3
  describe NorwegianPhone, "#number_valid?" do
4
4
  it "is invalid if nil" do
5
- NorwegianPhoneWrapper.number_valid?(nil).should be_false
5
+ NorwegianPhone.number_valid?(nil).should be_false
6
6
  end
7
7
 
8
8
  it "is invalid if blank" do
9
- NorwegianPhoneWrapper.number_valid?("").should be_false
9
+ NorwegianPhone.number_valid?("").should be_false
10
10
  end
11
11
 
12
12
  it "is invalid with letters" do
13
- NorwegianPhoneWrapper.number_valid?("1abc2").should be_false
13
+ NorwegianPhone.number_valid?("1abc2").should be_false
14
14
  end
15
15
 
16
16
  context "with funky characters" do
17
17
  it "rejects parens" do
18
- NorwegianPhoneWrapper.number_valid?("123(45)678").should be_false
18
+ NorwegianPhone.number_valid?("123(45)678").should be_false
19
19
  end
20
20
 
21
21
  it "rejects hyphens" do
22
- NorwegianPhoneWrapper.number_valid?("123-45-678").should be_false
22
+ NorwegianPhone.number_valid?("123-45-678").should be_false
23
23
  end
24
24
 
25
25
  it "rejects periods" do
26
- NorwegianPhoneWrapper.number_valid?("123.45.678").should be_false
26
+ NorwegianPhone.number_valid?("123.45.678").should be_false
27
27
  end
28
28
 
29
29
  it "rejects +sign in the middle" do
30
- NorwegianPhoneWrapper.number_valid?("123+45+678").should be_false
30
+ NorwegianPhone.number_valid?("123+45+678").should be_false
31
31
  end
32
32
 
33
33
  it "accepts spaces" do
34
- NorwegianPhoneWrapper.number_valid?("123 45 678").should be_true
34
+ NorwegianPhone.number_valid?("123 45 678").should be_true
35
35
  end
36
36
 
37
37
  it "accepts +sign in the beginning" do
38
- NorwegianPhoneWrapper.number_valid?("+123 45 678").should be_true
38
+ NorwegianPhone.number_valid?("+123 45 678").should be_true
39
39
  end
40
40
  end
41
41
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: norwegian_phone
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.8
4
+ version: 0.0.9
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2011-09-28 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
16
- requirement: &70273353792000 !ruby/object:Gem::Requirement
16
+ requirement: &70097449596920 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,7 +21,7 @@ dependencies:
21
21
  version: '0'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *70273353792000
24
+ version_requirements: *70097449596920
25
25
  description: Standardizes norwegian phone numbers, and leaves international numbers
26
26
  unchanged.
27
27
  email: