Module: Arafa::PhoneNumber

Defined in:
lib/arafa/phone_number.rb

Overview

Normalizes Kenyan MSISDNs into the 2547XXXXXXXX / 2541XXXXXXXX form that both provider APIs expect, accepting local (07.../01...), international with a leading + (+254...), and already-normalized (254...) input.

Constant Summary collapse

LOCAL_FORMAT =
/\A0(7|1)\d{8}\z/
INTERNATIONAL_FORMAT =
/\A\+?254(7|1)\d{8}\z/

Class Method Summary collapse

Class Method Details

.normalize(value) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/arafa/phone_number.rb', line 12

def self.normalize(value)
  digits = value.to_s.strip

  case digits
  when LOCAL_FORMAT
    "254#{digits[1..]}"
  when INTERNATIONAL_FORMAT
    digits.delete_prefix("+")
  else
    digits
  end
end