СНИЛС

Генерация, валидация и форматирование СНИЛС.

Read this README in English (Читать это README на английском)

Установка

Добавьте следующую строчку в Gemfile в вашем приложении:

gem 'snils'

И затем выполните:

$ bundle

Или установите вручную:

$ gem install snils

Использование

Генерирование новых СНИЛСов:

Snils.new.formatted
#=> "216-471-647 63"

Проверка корректности СНИЛСов:

Snils.new("21647164763").valid?
#=> true

Snils.new("21647164760").valid?
#=> false

Snils.new("21647164760").errors
#=> [:invalid]

Snils.new("216471647").errors
#=> [[:wrong_length, {:count=>11}], :invalid]

Валидация в Ruby on Rails для атрибутов моделей:

require 'snils'

class User < ActiveRecord::Base
  validates :snils, presence: true, uniqueness: true
  validate  :snils_validation

  protected

  def snils_validation
    validated_snils = Snils.new(snils)
    unless validated_snils.valid?
      validated_snils.errors.each do |error|
        errors.add(:snils, *error)
      end
    end
  end
end

Помощь в разработке

  1. Сделайте форк проекта в своём github-аккаунте. ( https://github.com/Envek/snils/fork )
  2. Создайте отдельную ветвь разработки. (git checkout -b my-new-feature)
  3. Внесите в неё желаемые изменения (не забудьте про тесты!) и сделайте коммит(ы). (git commit -am 'Add some feature')
  4. Запушьте изменения (git push origin my-new-feature)
  5. Создайте новый Pull Request