module Spira::Validations

Public Instance Methods

save(options={}) click to toggle source

The validation process on save can be skipped by passing validate: false. The regular Base#save method is replaced with this when the validations module is mixed in, which it is by default.

Calls superclass method
# File lib/spira/validations.rb, line 44
def save(options={})
  perform_validations(options) ? super : false
end
save!(options={}) click to toggle source

Attempts to save the record just like Base#save but will raise a RecordInvalid exception instead of returning false if the record is not valid.

Calls superclass method
# File lib/spira/validations.rb, line 50
def save!(options={})
  perform_validations(options) ? super : raise(RecordInvalid.new(self))
end
valid?(context = nil) click to toggle source

Runs all the validations within the specified context. Returns true if no errors are found, false otherwise.

If the argument is false (default is nil), the context is set to :create if new_record? is true, and to :update if it is not.

Validations with no :on option will run no matter the context. Validations with some :on option will only run in the specified context.

Calls superclass method
# File lib/spira/validations.rb, line 62
def valid?(context = nil)
  context ||= (new_record? ? :create : :update)
  output = super(context)
  errors.empty? && output
end

Protected Instance Methods

perform_validations(options={}) click to toggle source
# File lib/spira/validations.rb, line 70
def perform_validations(options={})
  perform_validation = options[:validate] != false
  perform_validation ? valid?(options[:context]) : true
end