--- validations version 2 Fri May 30 06:29:20 +0000 2008
+++ validations version 6 Fri Sep 19 02:53:31 +0000 2008
@@ -1,40 +1,38 @@
-# Credit: http://nubyonrails.com/articles/ruby-rails-test-rails-cheat-sheet
-# Use 'cheat assert_raise' for more details
+Basic Validations
+http://ar.rubyonrails.com/classes/ActiveRecord/Validations/ClassMethods.html
-# Standard Ruby Assertions
+def validate
+ unless name && name =~ /^\w+$/
+ errors.add(:name, "is missing or valid")
+ end
+end
-assert boolean
-assert_equal expected, actual
-assert_raise *args
-assert_raises *args, &block
-assert_instance_of klass, object
-assert_nil object
-assert_kind_of klass, object
-assert_respond_to object, method
-assert_match pattern, string
-assert_same expected, actual
-assert_operator object1, operator, object2
-assert_nothing_raised *args
-assert_not_same expected, actual
-assert_not_equal expected, actual
-assert_not_nil object
-assert_no_match regexp, string
-assert_throws expected_symbol, &proc
-assert_nothing_thrown &proc
-assert_in_delta expected_float, actual_float, delta
-assert_send send_array
+def validate_on_create
+ if User.find_by_name(name)
+ errors.add(:name, "is already being used")
+ end
+end
-# Rails Assertions
-assert_response type
-assert_redirected_to options = {}
-assert_template expected
-assert_recognizes expected_options, path, extras={}
-assert_generates expected_path, options, defaults={}, extras = {}
-assert_routing path, options, defaults={}, extras={}
-assert_tag *opts
-assert_no_tag *opts
-assert_dom_equal expected, actual
-assert_dom_not_equal expected, actual
-assert_valid record
+validates_acceptance_of
+ Validates that the value of the attribute is the string "1" or the value of
+ the :accept parameter. Useful for checkboxes.
+validates_associated
+validates_confirmation_of
+validates_each
+validates_exclusion_of
+validates_format_of
+validates_inclusion_of
+validates_length_of
+validates_numericality_of
+validates_presence_of
+validates_size_of
+validates_uniqueness_of
+
+DEFAULT_VALIDATION_OPTIONS = { :on => :save, :allow_nil => false, :allow_blank
+=> false, :message => nil
+ALL_RANGE_OPTIONS = [ :is, :within, :in, :minimum, :maximum ].freeze
+ALL_NUMERICALITY_CHECK = { :greater_than => '>', :greater_than_or_equal_to =>
+'>=', :equal_to => '==', :less_than => '<', :less_than_or_equal_to => '<=', :odd
+=> 'odd?', :even => 'even?' }.freeze