AlbertGazizov/attr_validator

View on GitHub
lib/attr_validator.rb

Summary

Maintainability
A
0 mins
Test Coverage
require 'i18n'
require 'attr_validator/core_extensions/class_attribute'
require 'attr_validator/concern'
require 'attr_validator/version'
require 'attr_validator/errors'
require 'attr_validator/args_validator'
require 'attr_validator/validator'
require 'attr_validator/i18n'
require 'attr_validator/validators'
require 'attr_validator/validation_errors'

module AttrValidator
  @@validators = {}

  # Returns list of defined validators
  def self.validators
    @@validators
  end

  # Adds new validator to AttrValidator
  # @param validator_name [Symbol] validator name
  # @param validator      [.validate, .validation_options] validator
  def self.add_validator(validator_name, validator)
    @@validators[validator_name] = validator
  end
end

AttrValidator.add_validator(:email,        AttrValidator::Validators::EmailValidator)
AttrValidator.add_validator(:exclusion,    AttrValidator::Validators::ExclusionValidator)
AttrValidator.add_validator(:inclusion,    AttrValidator::Validators::InclusionValidator)
AttrValidator.add_validator(:length,       AttrValidator::Validators::LengthValidator)
AttrValidator.add_validator(:numericality, AttrValidator::Validators::NumericalityValidator)
AttrValidator.add_validator(:presence,     AttrValidator::Validators::PresenceValidator)
AttrValidator.add_validator(:not_blank,    AttrValidator::Validators::PresenceValidator)
AttrValidator.add_validator(:not_nil,      AttrValidator::Validators::NotNilValidator)
AttrValidator.add_validator(:regexp,       AttrValidator::Validators::RegexpValidator)
AttrValidator.add_validator(:url,          AttrValidator::Validators::UrlValidator)

# I18n settings
I18n.load_path += Dir[File.dirname(__FILE__) +'/attr_validator/locales/*.yml']
I18n.default_locale = :en
I18n.reload!