6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
# File 'lib/dont_validate/activemodel.rb', line 6
def dont_validate(*attributes)
defaults = attributes.
validations = defaults.slice!(*_validates_default_keys)
validation_classes = validations.keys.map {|key| "#{key.to_s.camelize}Validator"}
raise ArgumentError, "You need to supply at least one attribute" if attributes.empty?
defaults.merge!(:attributes => attributes)
symbolized_attributes = attributes.map(&:to_sym)
_validators.each do |attribute, validators|
validators.each do |validator|
next if !validator.respond_to?(:attributes) or validator.attributes.empty?
next unless validation_classes.empty? or validation_classes.include?(validator.class.to_s.demodulize)
validator.attributes.reject! {|attr| symbolized_attributes.include?(attr.to_sym) }
args = [validator, validator.options.dup]
skip_callback(:validate, *args)
end
validators.reject! {|validator| validator.attributes.empty? }
_validators.delete(attribute) if validators.empty?
end
true
end
|