class Telefon
Constants
- DEFAULTS
- VERSION
- WITHOUT_AREA_CODE
- WITH_AREA_CODE
Public Class Methods
convert(number, options = {})
click to toggle source
# File lib/telefon.rb, line 14 def self.convert(number, options = {}) new(options).convert(number) end
new(options = {})
click to toggle source
# File lib/telefon.rb, line 18 def initialize(options = {}) @options = DEFAULTS.merge(options) end
Public Instance Methods
convert(number)
click to toggle source
# File lib/telefon.rb, line 22 def convert(number) code = @options[:country_code] ext = @options[:extension] result = "" result << country_code(code) if code result << convert_to_phone_number(number.to_s) result << extension(ext) if ext return result end
Private Instance Methods
convert_to_phone_number(number)
click to toggle source
# File lib/telefon.rb, line 41 def convert_to_phone_number(number) if @options[:area_code] return convert_with_area_code(number) else return convert_without_area_code(number) end end
convert_with_area_code(number)
click to toggle source
# File lib/telefon.rb, line 49 def convert_with_area_code(number) return number.gsub(WITH_AREA_CODE, "(\\1) \\2#{ delimiter }\\3") end
convert_without_area_code(number)
click to toggle source
# File lib/telefon.rb, line 53 def convert_without_area_code(number) result = number.gsub(WITHOUT_AREA_CODE, "\\1#{ delimiter }\\2#{ delimiter }\\3") result.slice!(0, delimiter.size) if start_with_delimiter?(result) return result end
country_code(code)
click to toggle source
# File lib/telefon.rb, line 37 def country_code(code) return "+#{ code }#{ delimiter }" end
delimiter()
click to toggle source
# File lib/telefon.rb, line 68 def delimiter return @options[:delimiter] end
extension(ext)
click to toggle source
# File lib/telefon.rb, line 60 def extension(ext) return " x #{ ext }" end
start_with_delimiter?(number)
click to toggle source
# File lib/telefon.rb, line 64 def start_with_delimiter?(number) delimiter && number.start_with?(delimiter) end