Skip to content

Commit a750ef6

Browse files
committed
fixed issue #332
1 parent ccf0cc7 commit a750ef6

File tree

2 files changed

+16
-3
lines changed

2 files changed

+16
-3
lines changed

lib/phonelib/phone_analyzer.rb

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -69,9 +69,15 @@ def better_result(base_result, result = nil)
6969
end
7070

7171
# replacing national prefix to simplified format
72-
def with_replaced_national_prefix(phone, data)
73-
return phone unless data[Core::NATIONAL_PREFIX_TRANSFORM_RULE]
74-
phone = phone.gsub(/^#{data[Core::COUNTRY_CODE]}/, '') if phone.start_with?(data[Core::COUNTRY_CODE]) && !data[Core::DOUBLE_COUNTRY_PREFIX_FLAG]
72+
def with_replaced_national_prefix(passed_phone, data)
73+
return passed_phone unless data[Core::NATIONAL_PREFIX_TRANSFORM_RULE]
74+
phone = if passed_phone.start_with?(data[Core::COUNTRY_CODE]) && !data[Core::DOUBLE_COUNTRY_PREFIX_FLAG]
75+
passed_phone.gsub(/^#{data[Core::COUNTRY_CODE]}/, '')
76+
else
77+
passed_phone
78+
end
79+
return passed_phone unless phone.match? cr("^#{type_regex(data[Core::TYPES][Core::GENERAL], Core::POSSIBLE_PATTERN)}$")
80+
7581
pattern = cr("^(?:#{data[Core::NATIONAL_PREFIX_FOR_PARSING]})")
7682
match = phone.match pattern
7783
if match && match.captures.compact.size > 0

spec/phonelib_spec.rb

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1428,6 +1428,13 @@
14281428
end
14291429
end
14301430

1431+
context 'issue #332' do
1432+
it 'should parse short number as invalid without replaced prefix' do
1433+
p = Phonelib.parse('+44008123')
1434+
expect(p.valid?).to be(false)
1435+
end
1436+
end
1437+
14311438
context 'example numbers' do
14321439
it 'are valid' do
14331440
data_file = File.dirname(__FILE__) + '/../data/phone_data.dat'

0 commit comments

Comments
 (0)