Sha256: c7c60146993f22942deb9750a340944bf3e72e0c05e9037525029a9f45b4a2a3
Contents?: true
Size: 632 Bytes
Versions: 224
Compression:
Stored size: 632 Bytes
Contents
module PhoneNumber NANP_PROTOCOL = %r{ \A (?<international_code>1?) (?<area_code>[2-9]{1}[0-9]{2}) (?<exchange_code>[2-9]{1}[0-9]{2}) (?<subscriber>[0-9]{4}) \z }x def self.clean(number) sanitized = digits_only(number) sections = nanp_parse(sanitized) format '%<area_code>s%<exchange_code>s%<subscriber>s', sections if sections end def self.digits_only(number) number.gsub(/\D/, '') end def self.nanp_parse(number) matches = number.match(NANP_PROTOCOL) matches.names.map(&:to_sym).zip(matches.captures).to_h if matches end end module BookKeeping VERSION = 2 end
Version data entries
224 entries across 224 versions & 1 rubygems