Module: AWS::Record::Validations

Defined in:
lib/simple_callbacks/validations.rb

Class Method Summary collapse

Class Method Details

.extended(base) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/simple_callbacks/validations.rb', line 6

def self.extended base
  # This is the original declaration of :run_validations from 
  # AWS::Record::Validations.  The name has just been changed.
  base.send(:define_method, :run_validations_without_callbacks) do
    errors.clear!
    self.class.send(:validators).each do |validator|
      validator.validate(self)
    end
  end
  base.send(:private, :run_validations_without_callbacks)

  # This just wraps the other validation method in a run_callbacks block.
  base.send(:define_method, :run_validations) do
    run_callbacks(:validation){ run_validations_without_callbacks }
  end
  base.send(:private, :run_validations)
end