module BazaModels::Model::Validations::ClassMethods

Public Instance Methods

__validators() click to toggle source
# File lib/baza_models/model/validations.rb, line 92
def __validators
  @validators ||= {}
end
validate_shortcut(type, args) click to toggle source
# File lib/baza_models/model/validations.rb, line 79
def validate_shortcut(type, args)
  if args.last.is_a?(Hash)
    before_opts = args.pop

    opts = {type => before_opts}
    opts[:if] = before_opts.delete(:if) if before_opts.key?(:if)
  else
    opts = {type => true}
  end

  validates(*args, opts)
end
validates(*attribute_names, args) click to toggle source
# File lib/baza_models/model/validations.rb, line 43
def validates(*attribute_names, args)
  special_args = {
    if: args.delete(:if)
  }

  attribute_names.each do |attribute_name|
    args.each do |validator_name, _validator_args|
      validator_camel_name = StringCases.snake_to_camel(validator_name)
      class_name = "#{validator_camel_name}Validator"

      __validators[attribute_name] ||= []
      __validators[attribute_name] << BazaModels::Validators.const_get(class_name).new(attribute_name, args.merge(special_args))
    end
  end
end
validates_confirmation_of(*args) click to toggle source
# File lib/baza_models/model/validations.rb, line 59
def validates_confirmation_of(*args)
  validate_shortcut(:confirmation, args)
end
validates_format_of(*args) click to toggle source
# File lib/baza_models/model/validations.rb, line 63
def validates_format_of(*args)
  validate_shortcut(:format, args)
end
validates_length_of(*args) click to toggle source
# File lib/baza_models/model/validations.rb, line 67
def validates_length_of(*args)
  validate_shortcut(:length, args)
end
validates_presence_of(*args) click to toggle source
# File lib/baza_models/model/validations.rb, line 71
def validates_presence_of(*args)
  validate_shortcut(:presence, args)
end
validates_uniqueness_of(*args) click to toggle source
# File lib/baza_models/model/validations.rb, line 75
def validates_uniqueness_of(*args)
  validate_shortcut(:uniqueness, args)
end