/soft_validations

This Ruby on Rails plugin provides an additional Errors object, referred to as warnings, to ActiveRecord objects. Unlike validations, soft validations are not tied in to an AR object's lifecycle and can be used to specify recommended states for data.

Primary LanguageRubyMIT LicenseMIT

SoftValidations
===============

This plugin provides an additional Errors object, referred to as warnings, to ActiveRecord objects. The warnings object is not tied in to a model's life cycle. Thus, an ActiveRecord object can be saved while still having messages in its warnings. This might be useful for sites that would want to keep track of recommended fields for users to complete, or sites with large amounts of erroneous imported data which might benefit from suspending some validations for a little while.


Example
=======

Use SoftValidations::Validation#soft_validation to add a descriptive declaration of an ActiveRecord object's desired state in order to be considered complete. The methods or block passed to soft_validate should add a message to the class's warning collection.

  class Employee < ActiveRecord::Base
    soft_validate :should_have_first_name
    
    protected
    def should_have_first_name
      warnings.add(:first_name, "shouldn't be blank") unless attribute_present?(:first_name)
    end
  end

To generate warnings, you should first call complete?

	>> employee = Employee.new
	>> employee.complete? 
	=> false
	>> employee.warnings.on(:first_name) 
	=> "shouldn't be blank"


Copyright (c) 2008 Julia West, released under the MIT license