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

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

Instance Method Summary collapse

Instance Method Details

#__validatorsObject



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

def __validators
  @validators ||= {}
end

#validate_shortcut(type, args) ⇒ Object



78
79
80
81
82
83
84
85
86
87
88
89
# File 'lib/baza_models/model/validations.rb', line 78

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



42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/baza_models/model/validations.rb', line 42

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



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

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

#validates_format_of(*args) ⇒ Object



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

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

#validates_length_of(*args) ⇒ Object



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

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

#validates_presence_of(*args) ⇒ Object



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

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

#validates_uniqueness_of(*args) ⇒ Object



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

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