module TelFormatter

Constants

AREA_CODES
AREA_CODE_REGEXP
CELLPHONE_CODES
CELLPHONE_CODE_10_REGEXP
CELLPHONE_CODE_REGEXP
SPECIAL_CODES_10
SPECIAL_CODES_11
SPECIAL_CODE_10_REGEXP
SPECIAL_CODE_11_REGEXP
VERSION

Public Class Methods

format(tel) click to toggle source
# File lib/tel_formatter.rb, line 15
def self.format(tel)
  self.split(tel).join("-")
end
preprocess(tel) click to toggle source
# File lib/tel_formatter.rb, line 45
def self.preprocess(tel)
  NKF.nkf("-m0Z0 -w", tel).split("").select { |c| /\d/ =~ c }.join
end
split(tel) click to toggle source
# File lib/tel_formatter.rb, line 19
def self.split(tel)
  tel = self.preprocess(tel)
  case tel.length
  when 10
    if AREA_CODE_REGEXP =~ tel
      return [$1, $2, $3]
    elsif SPECIAL_CODE_10_REGEXP =~ tel
      return [$1, $2]
    elsif CELLPHONE_CODE_10_REGEXP =~ tel
      return [$1, $2, $3]
    else
      raise ArgumentError, "Invalid telephone number"
    end
  when 11
    if CELLPHONE_CODE_REGEXP =~ tel
      return [$1, $2, $3]
    elsif SPECIAL_CODE_11_REGEXP =~ tel
      return [$1, $2]
    else
      raise ArgumentError, "Invalid telephone number"
    end
  else
    raise ArgumentError, "Invalid telephone number"
  end
end