Sha256: b6a2f82b0780928f8d6a5a348aa1a21cca99bdc3e6e0e15cdd68b99c58bbd59f
Contents?: true
Size: 1.22 KB
Versions: 2
Compression:
Stored size: 1.22 KB
Contents
module CoreExt module NumberHelper class NumberToPhoneConverter < NumberConverter #:nodoc: def convert str = country_code(opts[:country_code]) str << convert_to_phone_number(number.to_s.strip) str << phone_ext(opts[:extension]) end private def convert_to_phone_number(number) if opts[:area_code] convert_with_area_code(number) else convert_without_area_code(number) end end def convert_with_area_code(number) number.gsub!(/(\d{1,3})(\d{3})(\d{4}$)/,"(\\1) \\2#{delimiter}\\3") number end def convert_without_area_code(number) number.gsub!(/(\d{0,3})(\d{3})(\d{4})$/,"\\1#{delimiter}\\2#{delimiter}\\3") number.slice!(0, 1) if start_with_delimiter?(number) number end def start_with_delimiter?(number) delimiter.present? && number.start_with?(delimiter) end def delimiter opts[:delimiter] || "-" end def country_code(code) code.blank? ? "" : "+#{code}#{delimiter}" end def phone_ext(ext) ext.blank? ? "" : " x #{ext}" end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
core_ext-0.0.6 | lib/core_ext/number_helper/number_to_phone_converter.rb |
core_ext-0.0.5 | lib/core_ext/number_helper/number_to_phone_converter.rb |