module Ruphone
Constants
- VERSION
Public Class Methods
normalize(phone, args = {})
click to toggle source
Normalize russian phone numbers to +7XXXXXXXXXX format. Examples:
Ruphone.normalize('8921-746-95-48') # => "+79217469548" Ruphone.normalize('8(921) 746-95-48') # => "+79217469548" Ruphone.normalize('746-95-48', city_code: '+7843') # => "+78437469548"
# File lib/ruphone.rb, line 15 def self.normalize(phone, args = {}) return phone if phone.nil? phone = phone.tr('^0-9', '') return phone if phone.size.zero? return prefix(phone) if phone.size == 10 if phone.size == 11 return plus(phone) if phone.start_with?('7') return prefix(phone[1..-1]) if phone.start_with?('8') end city_code = normalize_city_code(args[:city_code]) if city_code && phone.size == 11 - city_code.size return plus("#{city_code}#{phone}") end phone end
Private Class Methods
normalize_city_code(city_code)
click to toggle source
# File lib/ruphone.rb, line 47 def normalize_city_code(city_code) return city_code if city_code.nil? return city_code[1..-1] if city_code.start_with?('+') city_code end
plus(phone)
click to toggle source
# File lib/ruphone.rb, line 43 def plus(phone) "+#{phone}" end
prefix(phone)
click to toggle source
# File lib/ruphone.rb, line 39 def prefix(phone) "+7#{phone}" end