norwegian_phone 0.0.8 → 0.0.9

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.
@@ -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: