Module: BazaModels::Model::Validations::ClassMethods

Defined in:
lib/baza_models/model/validations.rb

Instance Method Summary collapse

Instance Method Details

#__validatorsObject



92
93
94
# File 'lib/baza_models/model/validations.rb', line 92

def __validators
  @validators ||= {}
end

#validate_shortcut(type, args) ⇒ Object



79
80
81
82
83
84
85
86
87
88
89
90
# 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) ⇒ Object



43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# 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) ⇒ Object



59
60
61
# File 'lib/baza_models/model/validations.rb', line 59

def validates_confirmation_of(*args)
  validate_shortcut(:confirmation, args)
end

#validates_format_of(*args) ⇒ Object



63
64
65
# File 'lib/baza_models/model/validations.rb', line 63

def validates_format_of(*args)
  validate_shortcut(:format, args)
end

#validates_length_of(*args) ⇒ Object



67
68
69
# File 'lib/baza_models/model/validations.rb', line 67

def validates_length_of(*args)
  validate_shortcut(:length, args)
end

#validates_presence_of(*args) ⇒ Object



71
72
73
# File 'lib/baza_models/model/validations.rb', line 71

def validates_presence_of(*args)
  validate_shortcut(:presence, args)
end

#validates_uniqueness_of(*args) ⇒ Object



75
76
77
# File 'lib/baza_models/model/validations.rb', line 75

def validates_uniqueness_of(*args)
  validate_shortcut(:uniqueness, args)
end