phony 2.13.0 → 2.14.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e19199a57d389032d55f939a10cae73a78287d4d
4
- data.tar.gz: 009422959de3b6f962b97413f94a74f4577cef18
3
+ metadata.gz: ad23d7833af7d5c22a7a2157ac509e762c16ad39
4
+ data.tar.gz: 0d2aab1c49bdac649ce7d2c0a93e4acf2234f714
5
5
  SHA512:
6
- metadata.gz: 67a4d6045871dbc59c274fa902be56c78fbe50b754b473d2cc4340ae1426367ae13d52bdc47dcd42636985bf256b2eb753a362006a32d638103195c340115c37
7
- data.tar.gz: fe40d41769928ef6a86eb949e88f67a259373392cb051989744a2d0d0e01785815ac6084c9733693691e028bcaaf660d0cec3bc852695d6506e7eb24e8c51f4f
6
+ metadata.gz: 089b667c5e5651ce2b8b1ae611cd74fa84cd32b71207a1246aa143c96c78ed50e29799e9cda94def9dee22027c68a0c06753fdaef2e00a531d5aca9c251c24ac
7
+ data.tar.gz: cc36ddfa8d3afef335858bcf700fc726cfcc2fcc8d87db4327356f09eb09b54b9df595a84e8cdf971fc7935e6659da417303fd3399fdb9e71abe9d520d6d4813
data/lib/phony.rb CHANGED
@@ -177,9 +177,7 @@ module Phony
177
177
  # Phony.split!("13015550100") # => ["1", "301", "555", "0100"]
178
178
  #
179
179
  def split! phone_number
180
- parts = @codes.split phone_number
181
- parts.delete_at 1
182
- parts
180
+ @codes.split phone_number
183
181
  end
184
182
 
185
183
  # Formats a normalized E164 number according to a country's formatting scheme.
@@ -51,9 +51,11 @@ Phony.define do
51
51
  #
52
52
  country '1',
53
53
  # The US has a delimiter between NDC and local number.
54
- trunk('1%s', normalize: true) | # http://en.wikipedia.org/wiki/Trunk_prefix
54
+ trunk('1%s', normalize: true, format: false) | # http://en.wikipedia.org/wiki/Trunk_prefix
55
55
  fixed(3) >> split(3,4),
56
- :invalid_ndcs => /[0-1]\d{2}|[3-9]11/
56
+ :invalid_ndcs => /[0-1]\d{2}|[3-9]11/,
57
+ :parentheses => true,
58
+ :local_space => :-
57
59
 
58
60
  # Kazakhstan (Republic of) & Russsian Federation.
59
61
  # also Abhasia and South Osetia autonomous regions / recognized by some states as independent countries
data/lib/phony/country.rb CHANGED
@@ -4,15 +4,24 @@ module Phony
4
4
  #
5
5
  class Country
6
6
 
7
- attr_reader :format, :space, :local_space
8
7
  attr_accessor :codes
9
8
 
10
- #
9
+ @@international_absolute_format = '+%s%s%s%s%s'
10
+ @@international_relative_format = '00%s%s%s%s%s'
11
+ @@national_format = '%s%s%s%s'
12
+
13
+ @@default_space = ' '
14
+ @@default_local_space = ' '
15
+ @@default_parentheses = false
16
+
17
+ # TODO Doc.
11
18
  #
12
19
  def initialize *codes
13
20
  @codes = codes
14
21
  end
15
22
 
23
+ # DSL method.
24
+ #
16
25
  # Chain two codes together.
17
26
  #
18
27
  def | other
@@ -26,10 +35,13 @@ module Phony
26
35
  #
27
36
  def with cc, options = {}
28
37
  @cc = cc
38
+
29
39
  @invalid_ndcs = options[:invalid_ndcs]
40
+
30
41
  @format = options[:format]
31
42
  @space = options[:space]
32
43
  @local_space = options[:local_space]
44
+ @parentheses = options[:parentheses]
33
45
  end
34
46
 
35
47
  # A number is split with the code handlers as given in the initializer.
@@ -53,6 +65,68 @@ module Phony
53
65
  return [code.local_splitter, zero, ndc, *rest] if rest && !rest.empty?
54
66
  end
55
67
  end
68
+
69
+ # Format the number, given the national part of it.
70
+ #
71
+ def format national_number, options = {}
72
+ type = options[:format] || @format
73
+ space = options[:spaces] || @space || @@default_space
74
+ local_space = options[:local_spaces] || @local_space || space || @@default_local_space
75
+ parentheses = options[:parentheses]
76
+ parentheses = @parentheses || @@default_parentheses if parentheses.nil?
77
+ use_trunk = options[:trunk]
78
+
79
+ trunk, ndc, *local_pieces = split national_number
80
+
81
+ local = format_local local_pieces, local_space
82
+
83
+ format_cc_ndc trunk, ndc, local, type, space, parentheses, use_trunk
84
+ end
85
+ def format_local local, local_space
86
+ if local.empty?
87
+ EMPTY_STRING
88
+ else
89
+ local.compact!
90
+ local.join local_space.to_s
91
+ end
92
+ end
93
+ def format_cc_ndc trunk, ndc, local, type, space, parentheses, use_trunk
94
+ case type
95
+ when String
96
+ trunk &&= trunk.format(space, use_trunk)
97
+ type % { :trunk => trunk, :cc => @cc, :ndc => ndc, :local => local }
98
+ when nil, :international_absolute, :international, :+
99
+ if ndc
100
+ ndc = parentheses ? "(#{ndc})" : ndc
101
+ format_with_ndc(@@international_absolute_format, @cc, ndc, local, space)
102
+ else
103
+ format_without_ndc(@@international_absolute_format, @cc, local, space)
104
+ end
105
+ when :international_relative
106
+ if ndc
107
+ ndc = parentheses ? "(#{ndc})" : ndc
108
+ format_with_ndc(@@international_relative_format, @cc, ndc, local, space)
109
+ else
110
+ format_without_ndc(@@international_relative_format, @cc, local, space)
111
+ end
112
+ when :national
113
+ trunk &&= trunk.format(space, use_trunk)
114
+ if ndc && !ndc.empty?
115
+ ndc = parentheses ? "(#{ndc})" : ndc
116
+ @@national_format % [trunk, ndc, space, local]
117
+ else
118
+ @@national_format % [trunk, nil, nil, local]
119
+ end
120
+ when :local
121
+ local
122
+ end
123
+ end
124
+ def format_with_ndc format, cc, ndc, local, space
125
+ format % [cc, space, ndc, space, local]
126
+ end
127
+ def format_without_ndc format, cc, local, space
128
+ format % [cc, space, local, nil, nil]
129
+ end
56
130
 
57
131
  # Cleans all non-numeric characters.
58
132
  #
@@ -9,18 +9,23 @@ module Phony
9
9
  attr_reader :countries
10
10
  attr_accessor :international_absolute_format, :international_relative_format, :national_format
11
11
 
12
- def initialize
13
- @international_absolute_format = '+%s%s%s%s%s'
14
- @international_relative_format = '00%s%s%s%s%s'
15
- @national_format = '%s%s%s%s'
16
-
17
- @default_space = ' '
18
- @default_local_space = ' '
19
- end
20
-
12
+ # Singleton instance.
13
+ #
21
14
  def self.instance
22
15
  @instance ||= new
23
16
  end
17
+
18
+ # Add the given country to the mapping under the
19
+ # given country code.
20
+ #
21
+ def add country_code, country
22
+ country_code = country_code.to_s
23
+ optimized_country_code_access = country_code.size
24
+
25
+ @countries ||= {}
26
+ @countries[optimized_country_code_access] ||= {}
27
+ @countries[optimized_country_code_access][country_code] = country
28
+ end
24
29
 
25
30
  # Get the Country object for the given CC.
26
31
  #
@@ -42,18 +47,6 @@ module Phony
42
47
  number.gsub!(@@basic_cleaning_pattern, EMPTY_STRING) || number
43
48
  end
44
49
 
45
- # Adds the country code to the front
46
- # if it does not already start with it.
47
- #
48
- # Note: This won't be correct in some cases, but it is the best we can do.
49
- #
50
- def countrify number, cc
51
- countrify!(number, cc) || number
52
- end
53
- def countrify! number, cc
54
- number.sub!(/\A/, cc) # @countrify_regex, @cc
55
- end
56
-
57
50
  # 00 for the standard international call prefix.
58
51
  # http://en.wikipedia.org/wiki/List_of_international_call_prefixes
59
52
  #
@@ -70,7 +63,7 @@ module Phony
70
63
  self[cc]
71
64
  else
72
65
  clean! number
73
- country, cc, number = split_cc number
66
+ country, cc, number = partial_split number
74
67
  country
75
68
  end
76
69
  number = country.normalize number
@@ -80,114 +73,21 @@ module Phony
80
73
  # Splits this number into cc, ndc and locally split number parts.
81
74
  #
82
75
  def split number
83
- _, *cc_split_rest = internal_split number
84
- cc_split_rest
85
- end
86
-
87
- def internal_split number
88
- country, cc, rest = split_cc number
89
- [country, cc, *country.split(rest)]
76
+ # TODO Think about reordering.
77
+ country, cc, trunk, *pieces = internal_split number
78
+ [cc, *pieces]
90
79
  end
91
80
 
81
+ # Format the number.
82
+ #
92
83
  def format number, options = {}
93
- country, cc, trunk, ndc, *parts = internal_split number
94
- format_cc_ndc_local \
95
- options[:format] || country.format,
96
- options[:spaces] || country.space || @default_space,
97
- options[:local_spaces] || country.local_space || options[:spaces] || @default_local_space,
98
- cc,
99
- options[:trunk] == false ? nil : trunk,
100
- ndc,
101
- *parts
84
+ country, _, national = partial_split number
85
+ country.format national, options
102
86
  end
103
87
  alias formatted format
104
88
 
105
- # Formats country code and national destination code.
106
- #
107
- def format_cc_ndc_local format, space, local_space, cc, trunk, ndc, *parts
108
- local = if parts.empty?
109
- EMPTY_STRING
110
- else
111
- format_local(local_space, parts) unless parts.empty?
112
- end
113
-
114
- format_cc_ndc format, space, cc, trunk, ndc, local
115
-
116
- # cc_ndc = cc_ndc.slice 0...cc_ndc.rindex(space.to_s) if parts.empty?
117
- end
118
- def format_cc_ndc format, space, cc, trunk, ndc, local
119
- case format
120
- when String
121
- trunk = trunk % space if trunk && trunk.size > 1
122
- format % { :trunk => trunk, :cc => cc, :ndc => ndc, :local => local }
123
- when nil, :international_absolute, :international, :+
124
- ndc ?
125
- format_with_ndc(@international_absolute_format, cc, ndc, local, space) :
126
- format_without_ndc(@international_absolute_format, cc, local, space)
127
- when :international_relative
128
- ndc ?
129
- format_with_ndc(@international_relative_format, cc, ndc, local, space) :
130
- format_without_ndc(@international_relative_format, cc, local, space)
131
- when :national
132
- # Replaces the %s in the trunk code with a "space".
133
- trunk = trunk % space if trunk && trunk.size > 1
134
- ndc && !ndc.empty? ?
135
- @national_format % [trunk, ndc, space, local] :
136
- @national_format % [trunk, nil, nil, local]
137
- when :local
138
- local
139
- end
140
- end
141
- def format_local local_space, parts_ary
142
- parts_ary.compact!
143
- parts_ary.join local_space.to_s
144
- end
145
-
146
- def format_with_ndc format, cc, ndc, local, space
147
- format % [cc, space, ndc, space, local]
148
- end
149
- def format_without_ndc format, cc, local, space
150
- format % [cc, space, local, nil, nil]
151
- end
152
-
153
- #
154
- #
155
- def service? number
156
- country, _, rest = split_cc number
157
- country.service? rest
158
- end
159
- def mobile? number
160
- country, _, rest = split_cc number
161
- country.mobile? rest
162
- end
163
- def landline? number
164
- country, _, rest = split_cc number
165
- country.landline? rest
166
- end
167
-
168
- # Is the given number a vanity number?
169
- #
170
- def vanity? number
171
- country, _, rest = split_cc number
172
- country.vanity? rest
173
- end
174
- # Converts a vanity number into a normalized E164 number.
89
+ # Is this number plausible?
175
90
  #
176
- def vanity_to_number vanity_number
177
- country, cc, rest = split_cc vanity_number
178
- "#{cc}#{country.vanity_to_number(rest)}"
179
- end
180
-
181
- def split_cc rest
182
- presumed_cc = ''
183
- 1.upto(3) do |i|
184
- presumed_cc << rest.slice!(0..0)
185
- country = countries[i][presumed_cc]
186
- return [country, presumed_cc, rest] if country
187
- end
188
- # This line is never reached as CCs are in prefix code.
189
- end
190
-
191
91
  def plausible? number, hints = {}
192
92
  normalized = clean number
193
93
 
@@ -195,7 +95,7 @@ module Phony
195
95
  #
196
96
  return false unless (4..15) === normalized.size
197
97
 
198
- country, cc, rest = split_cc normalized
98
+ country, cc, rest = partial_split normalized
199
99
 
200
100
  # Country code plausible?
201
101
  #
@@ -208,25 +108,60 @@ module Phony
208
108
  rescue StandardError
209
109
  return false
210
110
  end
211
-
212
- # # TODO
213
- # #
214
- # def self.with_cc cc
215
- # mapping[cc.size][cc.to_s]
216
- # end
217
-
218
- # Add the given country to the mapping under the
219
- # given country code.
111
+
112
+ # Is the given number a vanity number?
220
113
  #
221
- def add country_code, country
222
- country_code = country_code.to_s
223
- optimized_country_code_access = country_code.size
224
-
225
- @countries ||= {}
226
- @countries[optimized_country_code_access] ||= {}
227
- @countries[optimized_country_code_access][country_code] = country
114
+ def vanity? number
115
+ country, _, national = partial_split number
116
+ country.vanity? national
117
+ end
118
+ # Converts a vanity number into a normalized E164 number.
119
+ #
120
+ def vanity_to_number vanity_number
121
+ country, cc, national = partial_split vanity_number
122
+ "#{cc}#{country.vanity_to_number(national)}"
228
123
  end
229
124
 
125
+ private
126
+
127
+ # Return a country for the number.
128
+ #
129
+ def country_for number
130
+ country, _ = partial_split number
131
+ country
132
+ end
133
+
134
+ # Return a country and the split pieces of a number.
135
+ #
136
+ def internal_split number
137
+ country, cc, national = partial_split number
138
+ [country, cc, *country.split(national)]
139
+ end
140
+
141
+ # Split off the country and the cc, and also return the national number part.
142
+ #
143
+ def partial_split number
144
+ cc = ''
145
+ 1.upto(3) do |i|
146
+ cc << number.slice!(0..0)
147
+ country = countries[i][cc]
148
+ return [country, cc, number] if country
149
+ end
150
+ # This line is never reached as CCs are in prefix code.
151
+ end
152
+
153
+ # Adds the country code to the front
154
+ # if it does not already start with it.
155
+ #
156
+ # Note: This won't be correct in some cases, but it is the best we can do.
157
+ #
158
+ def countrify number, cc
159
+ countrify!(number, cc) || number
160
+ end
161
+ def countrify! number, cc
162
+ number.sub!(/\A/, cc) # @countrify_regex, @cc
163
+ end
164
+
230
165
  end
231
166
 
232
167
  end
@@ -14,6 +14,7 @@ module Phony
14
14
  @trunk_code_replacement = /\A#{code.gsub(%r{%s}, '')}/
15
15
  @normalize = options[:normalize] || options[:normalize].nil?
16
16
  @split = options[:split]
17
+ @format = options[:format] || options[:format].nil?
17
18
  end
18
19
 
19
20
  # Prepends itself to the other codes.
@@ -28,13 +29,21 @@ module Phony
28
29
  #
29
30
  def split national_number
30
31
  national_number.gsub! @trunk_code_replacement, EMPTY_STRING if @split
31
- return [@code, national_number]
32
+ return [self, national_number]
32
33
  end
33
34
 
35
+ # Normalize normalizes the given national number.
36
+ #
34
37
  def normalize national_number
35
38
  national_number.gsub! @trunk_code_replacement, EMPTY_STRING if @normalize
36
39
  return national_number
37
40
  end
41
+
42
+ # Format the trunk code using the spaces given.
43
+ #
44
+ def format space, force = nil
45
+ @code.size > 1 ? @code % space : @code if force || @format
46
+ end
38
47
 
39
48
  end
40
49
 
@@ -1,5 +1,8 @@
1
1
  require 'spec_helper'
2
2
 
3
+ # This is a very helpful page for phone number formatting:
4
+ # http://en.wikipedia.org/wiki/National_conventions_for_writing_telephone_numbers
5
+ #
3
6
  describe 'Phony#format' do
4
7
 
5
8
  describe 'cases' do
@@ -26,7 +29,7 @@ describe 'Phony#format' do
26
29
  Phony.format('71234567890', :format => '+%{cc} (%{trunk}%{ndc}) %{local}', :local_spaces => '-').should eql '+7 (8123) 45-67890'
27
30
  end
28
31
  it 'handles an American example correctly' do
29
- Phony.format('13015550100', :format => '+%{cc} %{trunk}%{ndc} %{local}', :local_spaces => '-').should eql '+1 1 301 555-0100'
32
+ Phony.format('13015550100', :format => '+%{cc} %{trunk}%{ndc} %{local}', :local_spaces => '-').should eql '+1 301 555-0100'
30
33
  end
31
34
  end
32
35
 
@@ -86,19 +89,26 @@ describe 'Phony#format' do
86
89
  it { Phony.format('4233841148', :format => :international_relative, :spaces => :-).should eql '00423-384-11-48' }
87
90
  end
88
91
  describe 'NANP' do
89
- it { Phony.format('18705551122').should eql '+1 870 555 1122' }
90
- it { Phony.format('18091231234', :format => :international).should eql '+1 809 123 1234' }
91
- it { Phony.format('18091231234', :format => :international, :spaces => '').should eql '+18091231234' }
92
+ it { Phony.format('18705551122').should eql '+1 (870) 555-1122' }
93
+ it { Phony.format('18091231234', :format => :international).should eql '+1 (809) 123-1234' }
94
+ it { Phony.format('18091231234', :format => :international, :spaces => '').should eql '+1(809)123-1234' }
92
95
  # Gets a trunk code.
93
- it { Phony.format('14152223333', :format => :national).should eql '1 415 222 3333' }
96
+ it { Phony.format('14152223333', :format => :national).should eql '(415) 222-3333' }
94
97
  # Does not show a trunk code.
95
- it { Phony.format('14152223333', :format => :national, :trunk => false).should eql '415 222 3333' }
96
- it { Phony.format('18091231234', :format => :international, :spaces => :-).should eql '+1-809-123-1234' }
97
- # leading trunk
98
- it { Phony.format('14159224711', :format => :national).should eql '1 415 922 4711' }
98
+ it { Phony.format('14152223333', :format => :national).should eql '(415) 222-3333' }
99
+ it { Phony.format('18091231234', :format => :international, :spaces => :-).should eql '+1-(809)-123-1234' }
100
+ it { Phony.format('14159224711', :format => :national).should eql '(415) 922-4711' }
101
+ # With forced trunk.
102
+ it { Phony.format('14159224711', :format => :national, :trunk => true).should eql '1 (415) 922-4711' }
103
+ it { Phony.format('14159224711', :format => :national, :trunk => false).should eql '(415) 922-4711' }
104
+ # With forced parentheses.
105
+ it { Phony.format('14159224711', :format => :national, :parentheses => true).should eql '(415) 922-4711' }
106
+ it { Phony.format('14159224711', :format => :national, :parentheses => false).should eql '415 922-4711' }
99
107
  end
100
108
  describe 'Netherlands' do
101
109
  it { Phony.format('311012341234', :format => :national).should eql '010 123 41234' }
110
+ # With forced trunk.
111
+ it { Phony.format('311012341234', :format => :national, :trunk => true).should eql '010 123 41234' }
102
112
  end
103
113
  describe 'New Zealand' do
104
114
  it { Phony.format('6421123456').should eql '+64 21 123 456' }
@@ -6,54 +6,6 @@ describe Phony::CountryCodes do
6
6
  @countries = Phony::CountryCodes.instance
7
7
  end
8
8
 
9
- describe 'international_absolute_format=' do
10
- it 'formats correctly' do
11
- @countries.formatted('41443643532', :format => :international).should eql '+41 44 364 35 32'
12
- end
13
- it 'formats correctly' do
14
- old_format = @countries.international_absolute_format
15
- @countries.international_absolute_format = '!!! %s%s%s%s%s'
16
-
17
- @countries.formatted('41443643532', :format => :international).should eql '!!! 41 44 364 35 32'
18
-
19
- @countries.international_absolute_format = old_format
20
- end
21
- end
22
- describe 'international_relative_format=' do
23
- it 'formats correctly' do
24
- @countries.formatted('41443643532', :format => :international_relative).should eql '0041 44 364 35 32'
25
- end
26
- it 'formats correctly' do
27
- old_format = @countries.international_relative_format
28
- @countries.international_relative_format = '000 %s%s%s%s%s'
29
-
30
- @countries.formatted('41443643532', :format => :international_relative).should eql '000 41 44 364 35 32'
31
-
32
- @countries.international_relative_format = old_format
33
- end
34
- end
35
- describe 'national_format=' do
36
- it 'formats correctly' do
37
- @countries.formatted('41443643532', :format => :international_relative).should eql '0041 44 364 35 32'
38
- end
39
- it 'formats correctly' do
40
- old_format = @countries.national_format
41
- @countries.national_format = '%s%s%s%s'
42
-
43
- # Removes CC 1, but adds national call prefix 1.
44
- #
45
- @countries.formatted('11231231234', :format => :national).should eql '1 123 123 1234'
46
-
47
- @countries.national_format = old_format
48
- end
49
- end
50
-
51
- describe 'split' do
52
- it 'splits correctly' do
53
- @countries.split('41443643532').should eql ['41', '0', '44', '364', '35', '32']
54
- end
55
- end
56
-
57
9
  describe 'formatted' do
58
10
  it 'formats correctly' do
59
11
  @countries.formatted('41443643532', :format => :international, :spaces => :-).should eql '+41-44-364-35-32'
@@ -78,7 +30,10 @@ describe Phony::CountryCodes do
78
30
  @countries.formatted('85512239123', :format => :national).should eql '012 239 123'
79
31
  end
80
32
  it 'formats the US correctly' do
81
- @countries.formatted('18005551212', :format => :national, :spaces => :-).should eql '1-800-555-1212'
33
+ @countries.formatted('18005551212', :format => :national, :spaces => :-).should eql '(800)-555-1212'
34
+ end
35
+ it 'formats the US correctly' do
36
+ @countries.formatted('18005551212', :format => :national, :spaces => :-).should eql '(800)-555-1212'
82
37
  end
83
38
  end
84
39
  context 'default' do
@@ -92,7 +47,7 @@ describe Phony::CountryCodes do
92
47
  @countries.formatted('43198110').should eql '+43 1 98110'
93
48
  end
94
49
  it "should format american numbers" do
95
- @countries.formatted('18705551122').should eql '+1 870 555 1122'
50
+ @countries.formatted('18705551122').should eql '+1 (870) 555-1122'
96
51
  end
97
52
  it "should format irish numbers" do
98
53
  @countries.formatted('35311234567').should eql '+353 1 123 4567'
@@ -100,7 +55,7 @@ describe Phony::CountryCodes do
100
55
  end
101
56
  describe "international" do
102
57
  it "should format north american numbers" do
103
- @countries.formatted('18091231234', :format => :international).should eql '+1 809 123 1234'
58
+ @countries.formatted('18091231234', :format => :international).should eql '+1 (809) 123-1234'
104
59
  end
105
60
  it "should format austrian numbers" do
106
61
  @countries.formatted('43198110', :format => :international).should eql '+43 1 98110'
@@ -149,7 +104,7 @@ describe Phony::CountryCodes do
149
104
  end
150
105
  context 'with no spaces' do
151
106
  it "should format north american numbers" do
152
- Phony.formatted('18091231234', :format => :international, :spaces => '').should eql '+18091231234'
107
+ Phony.formatted('18091231234', :format => :international, :spaces => '').should eql '+1(809)123-1234'
153
108
  end
154
109
  it "should format austrian numbers" do
155
110
  Phony.formatted('43198110', :format => :international, :spaces => '').should eql '+43198110'
@@ -172,7 +127,7 @@ describe Phony::CountryCodes do
172
127
  Phony.formatted('41443643532', :format => :international).should eql '+41 44 364 35 32'
173
128
  end
174
129
  it "should format north american numbers" do
175
- Phony.formatted('18091231234', :format => :international, :spaces => :-).should eql '+1-809-123-1234'
130
+ Phony.formatted('18091231234', :format => :international, :spaces => :-).should eql '+1-(809)-123-1234'
176
131
  end
177
132
  it "should format austrian numbers" do
178
133
  Phony.formatted('43198110', :format => :international, :spaces => :-).should eql '+43-1-98110'
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.13.0
4
+ version: 2.14.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Florian Hanke
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-05-20 00:00:00.000000000 Z
11
+ date: 2015-05-22 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