class Shoulda::Matchers::ActiveModel::Validator

def perform_validation

def perform_validation
  if context
    record.valid?(context)
  else
    record.valid?
  end
  all_validation_errors = record.errors.dup
  validation_error_messages =
    if record.errors.respond_to?(:[])
      record.errors[attribute]
    else
      record.errors.on(attribute)
    end
  {
    all_validation_errors: all_validation_errors,
    validation_error_messages: validation_error_messages,
    validation_exception_message: nil
  }
rescue ::ActiveModel::StrictValidationFailed => exception
  @captured_validation_exception = true
  {
    all_validation_errors: nil,
    validation_error_messages: [],
    validation_exception_message: exception.message
  }
end