module Core
Constants
- PREFIXES
Public Instance Methods
clean(number=nil)
click to toggle source
# File lib/piliponi/core.rb, line 27 def clean(number=nil) number.tr('^0-9','') if number end
clean_prefix(number)
click to toggle source
# File lib/piliponi/core.rb, line 41 def clean_prefix(number) number = "0#{number}" if number[0] != '0'; number end
normalize(number, options={})
click to toggle source
# File lib/piliponi/core.rb, line 17 def normalize(number, options={}) formats = [:pure, :local, :international] format = options[:format].intern raise FormatNotRecognizedException unless formats.include?(format) return send "_nf_#{format}", clean(number) if plausible?(number) raise InvalidPhoneNumberException end
plausible?(number)
click to toggle source
# File lib/piliponi/core.rb, line 5 def plausible? number return false if number.nil? clean_num = clean(number) size = clean_num.size ((clean_num[0] == "9" && size == 10) || (clean_num[0..1] == "63" && size == 12) || (clean_num[0..1] == "09" && size == 11)) && telco?(clean_num) != "unknown" end
prefix(number=nil)
click to toggle source
# File lib/piliponi/core.rb, line 35 def prefix number=nil hash = { '0' => [0,3], '6' => [2,4], '9' => [0,2] } start, finish = hash[number[0]].first, hash[number[0]].last clean_prefix(number[start..finish]) end
telco?(number=nil)
click to toggle source
# File lib/piliponi/core.rb, line 31 def telco? number=nil PiliponiApi.new.lookup prefix(clean number) end
Private Instance Methods
_nf_international(number)
click to toggle source
# File lib/piliponi/core.rb, line 55 def _nf_international(number) '+63' << _nf_pure(number) end
_nf_local(number)
click to toggle source
# File lib/piliponi/core.rb, line 51 def _nf_local(number) '0' << _nf_pure(number) end
_nf_pure(number)
click to toggle source
# File lib/piliponi/core.rb, line 47 def _nf_pure(number) number[-10..-1] end