Permalink
Browse files

Deprecated warning in the README

  • Loading branch information...
1 parent ec9acc9 commit 7649db6d51f0efee2170d885701789290e982503 @mike-burns mike-burns committed Jun 3, 2011
Showing with 123 additions and 120 deletions.
  1. +0 −120 README
  2. +123 −0 README.rdoc
View
@@ -1,120 +0,0 @@
-When
-====
-
-When adds :if and :unless conditions to ActiveRecord callbacks
-and validations and ActionController filters. It works exactly
-the way as the current implementation of #validates_acceptance_of.
-
-It works on the 12 regular callbacks:
-
-before_validation
-before_validation_on_create
-after_validation
-after_validation_on_create
-before_save
-before_create
-before_update
-after_create
-after_update
-after_save
-before_destroy
-after_destroy
-
-3 validations:
-
-validate
-validate_on_create
-validate_on_update
-
-and 1 filter:
-
-before_filter
-
-It works when :if or :unless is passed a Symbol, a Proc or a String.
-They return or evaluate to a true or false value.
-
-Example
-=======
-
-class Address < ActiveRecord::Base
-
- before_save :geolocate
-
- def geolocate
- if complete?
- ...
- end
- end
-
- def complete?
- street? && city? && state? && zip?
- end
-
-end
-
-In this case, we want to find the latitude and longitude of an address only if
-the address is complete.
-
-Wrapping the entirety of a callback method with conditional logic is bad form.
-The callback should execute WHEN the model's life cycle reaches its
-"before_save" point and WHEN its address is "complete."
-
-With When, the WHEN responsibility is moved to where it belongs:
-as part of the callback.
-
-class Address < ActiveRecord::Base
-
- before_save :geolocate,
- :if => :complete?
-
- def geolocate
- ...
- end
-
- def complete?
- street? && city? && state? && zip?
- end
-
-end
-
-before_create's single responsibility is to execute code WHEN certain conditions are met.
-geolocate's single responsibility is to ... geolocate. It should not contain its own
-preconditions.
-
-More Examples
-=============
-
-before_create :encrypt_password,
- :unless => lambda {|user| user.password_confirmation.blank?}
-
-before_filter :log_in!,
- :only => [:new, :create],
- :unless => :logged_in?
-
-What When does NOT support
-==========================
-
-# ActiveRecord Class callbacks
-before_create PasswordEncryptor,
- :unless => lambda {|user| user.password_confirmation.blank?}
-
-# ActionController Class filters
-before_filter Authorizer,
- :unless => :logged_in?
-
-When will not work if your code contains any of these.
-
-In our experience we've never used class callbacks or filters and find them to be overkill.
-
-Obsolete after Rails 2.0.3
-==========================
-
-Whenever the next release after Rails 2.0.2 comes out, this feature will be baked into Rails
-via the ActiveSupport::Callbacks module. Happy coding!
-
-Installation
-============
-
-piston import https://svn.thoughtbot.com/plugins/when/trunk vendor/plugins/when
-
-Copyright (c) 2008 Jared Carroll, Dan Croak, and thoughtbot, inc. released under the MIT license
View
@@ -0,0 +1,123 @@
+= DEPRECATED
+
+This plugin is deprecated. Please upgrade your Rails installation to at least
+2.1 to get this functionality, maintained, as well as all the other joys that
+come with a Rails upgrade.
+
+= When
+
+When adds :if and :unless conditions to ActiveRecord callbacks and validations
+and ActionController filters. It works exactly the way as the current
+implementation of #validates_acceptance_of.
+
+It works on the 12 regular callbacks:
+
+* before_validation
+* before_validation_on_create
+* after_validation
+* after_validation_on_create
+* before_save
+* before_create
+* before_update
+* after_create
+* after_update
+* after_save
+* before_destroy
+* after_destroy
+
+3 validations:
+
+* validate
+* validate_on_create
+* validate_on_update
+
+and 1 filter:
+
+* before_filter
+
+It works when :if or :unless is passed a Symbol, a Proc or a String. They
+return or evaluate to a true or false value.
+
+== Example
+
+ class Address < ActiveRecord::Base
+
+ before_save :geolocate
+
+ def geolocate
+ if complete?
+ ...
+ end
+ end
+
+ def complete?
+ street? && city? && state? && zip?
+ end
+
+ end
+
+In this case, we want to find the latitude and longitude of an address only if
+the address is complete.
+
+Wrapping the entirety of a callback method with conditional logic is bad form.
+The callback should execute WHEN the model's life cycle reaches its
+"before_save" point and WHEN its address is "complete."
+
+With When, the WHEN responsibility is moved to where it belongs: as part of the
+callback.
+
+ class Address < ActiveRecord::Base
+
+ before_save :geolocate,
+ :if => :complete?
+
+ def geolocate
+ ...
+ end
+
+ def complete?
+ street? && city? && state? && zip?
+ end
+
+ end
+
+before_create's single responsibility is to execute code WHEN certain
+conditions are met. geolocate's single responsibility is to ... geolocate. It
+should not contain its own preconditions.
+
+== More Examples
+
+ before_create :encrypt_password,
+ :unless => lambda {|user| user.password_confirmation.blank?}
+
+ before_filter :log_in!,
+ :only => [:new, :create],
+ :unless => :logged_in?
+
+== What When does NOT support
+
+ # ActiveRecord Class callbacks
+ before_create PasswordEncryptor,
+ :unless => lambda {|user| user.password_confirmation.blank?}
+
+ # ActionController Class filters
+ before_filter Authorizer,
+ :unless => :logged_in?
+
+When will not work if your code contains any of these.
+
+In our experience we've never used class callbacks or filters and find them to
+be overkill.
+
+== Obsolete after Rails 2.0.3
+
+Whenever the next release after Rails 2.0.2 comes out, this feature will be
+baked into Rails via the ActiveSupport::Callbacks module. Happy coding!
+
+== Installation
+
+piston import https://svn.thoughtbot.com/plugins/when/trunk vendor/plugins/when
+
+== Copyright
+
+Copyright (c) 2008 Jared Carroll, Dan Croak, and thoughtbot, inc. released under the MIT license

0 comments on commit 7649db6

Please sign in to comment.