Module: Core
- Included in:
- Piliponi, SingletonMethodSupport::SingletonMethods
- Defined in:
- lib/piliponi/core.rb,
lib/piliponi/piliponi_api.rb
Defined Under Namespace
Classes: PiliponiApi
Constant Summary collapse
- PREFIXES =
YAML.load_file(File.join(File.dirname(__FILE__),"config/telco.yml"))
Instance Method Summary collapse
- #clean(number = nil) ⇒ Object
- #clean_prefix(number) ⇒ Object
- #normalize(number, options = {}) ⇒ Object
- #plausible?(number) ⇒ Boolean
- #prefix(number = nil) ⇒ Object
- #telco?(number = nil) ⇒ Boolean
Instance Method Details
#clean(number = nil) ⇒ Object
27 28 29 |
# File 'lib/piliponi/core.rb', line 27 def clean(number=nil) number.tr('^0-9','') if number end |
#clean_prefix(number) ⇒ Object
41 42 43 |
# File 'lib/piliponi/core.rb', line 41 def clean_prefix(number) number = "0#{number}" if number[0] != '0'; number end |
#normalize(number, options = {}) ⇒ Object
17 18 19 20 21 22 23 24 25 |
# File 'lib/piliponi/core.rb', line 17 def normalize(number, ={}) formats = [:pure, :local, :international] format = [:format].intern raise FormatNotRecognizedException unless formats.include?(format) return send "_nf_#{format}", clean(number) if plausible?(number) raise InvalidPhoneNumberException end |
#plausible?(number) ⇒ Boolean
5 6 7 8 9 10 11 12 13 14 15 |
# 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) ⇒ Object
35 36 37 38 39 |
# 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) ⇒ Boolean
31 32 33 |
# File 'lib/piliponi/core.rb', line 31 def telco? number=nil PiliponiApi.new.lookup prefix(clean number) end |