# RussianPhone ## Что это Гем для разбора и нормализации русских телефонных номеров ## Альтернативные решения https://github.com/floere/phony https://github.com/joost/phony_rails https://github.com/carr/phone https://github.com/sstephenson/global_phone Указанные решения поддерживают несколько стран russian_phone поддерживает и будет поддерживать только российские телефонные номера Целью данного гема было скорее получение номера в чистом виде (10 значного) из введенных пользователем данных, и возможный минимум отбраковки верных номеров, которые сможет разобрать человек, чем 100% отбраковка неверных номеров. ## Installation Add this line to your application's Gemfile: gem 'russian_phone' And then execute: $ bundle Or install it yourself as: $ gem install russian_phone ## Usage Использованиие для разбора телефонных номеров: # phone = RussianPhone::Number.new('(906) 111-11-11', default_country: 7) => "+7 (906) 111-11-11" # phone.country => "7" # phone.city => "906" # phone.subscriber => "1111111" # phone.formatted_subscriber => "111-11-11" # phone.full => "+7 (906) 111-11-11" # phone.cell? => true # phone.free? => false # phone.valid? => true Использование с Mongoid: class User include Mongoid::Document field :phone, type: RussianPhone.field(default_country: 7, allowed_cities: [495]), validate: true, required: true end # u = User.new(phone: '495 1111111') # u.phone => '+7 (495) 111-11-11' # u.phone.valid? => true Обратите внимание, по умолчанию *валидация телефонного номера выключена*, это значит что номер будет сохраняться в базу даже если гем не смог его разобрать. Включите валидацию, установив validate:true. В базе телефоны храняться в виде строки в полном виде, если телефон удалось разобрать, и в том виде как введено пользователем, если не удалось разобрать и validate == false ## Contributing 1. Fork it 2. Create your feature branch (`git checkout -b my-new-feature`) 3. Commit your changes (`git commit -am 'Add some feature'`) 4. Push to the branch (`git push origin my-new-feature`) 5. Create new Pull Request