Class: Babylonia::Rails::Validators::LocalesValidator
- Inherits:
-
ActiveModel::EachValidator
- Object
- ActiveModel::EachValidator
- Babylonia::Rails::Validators::LocalesValidator
- Defined in:
- lib/babylonia/rails/validators/locale_validator.rb
Instance Attribute Summary collapse
-
#validators ⇒ Object
readonly
Returns the value of attribute validators.
Instance Method Summary collapse
Instance Attribute Details
#validators ⇒ Object (readonly)
Returns the value of attribute validators.
10 11 12 |
# File 'lib/babylonia/rails/validators/locale_validator.rb', line 10 def validators @validators end |
Instance Method Details
#validate_each(record, attribute, value) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/babylonia/rails/validators/locale_validator.rb', line 12 def validate_each(record, attribute, value) @validators = {} record.available_locales.each do |lang| validations = ActiveRecord::VERSION::MAJOR < 4 ? [:acceptance, :exclusion, :format, :inclusion, :length, :numericality, :presence, :uniqueness] : [:absence, :acceptance, :exclusion, :format, :inclusion, :length, :numericality, :presence, :uniqueness] validations.each do |validation| add_validator validation, attribute, lang if should_validate?(validation, lang) end end validators.each do |validator, attributes| if validator == :uniqueness Babylonia::Rails::Validators::LocaleUniquenessValidator.new(validator_attributes(validator, attributes)).validate(record) else "ActiveModel::Validations::#{validator.to_s.classify}Validator".constantize.new(validator_attributes(validator, attributes)).validate(record) end end end |