<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>README</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -4,17 +4,19 @@ response_for (see Ardes::ResponseFor::ClassMethods) allows you to decorate the r
 
 == Current Version 0.2-stable
 
-Version 0.2-stable of response_for has BC-breaking API changes, has vastly simplified internals, and is supported only for Rails &gt;= 2.1.x.
-
-Version 0.2.0 was released on Sept 14th 2008.
-
 As of version 0.2.0, response_for's functionality can be summed up in one sentence:
 
 &quot;response_for allows you to specify default responses for any action (or before filter) that doesn't render or redirect&quot;
 
-Actions typically do two things - interact with models, and provide a repsonse.  The above simple idea allows you to decouple these
+Actions typically do two things - interact with models, and render a response.  The above simple idea allows you to decouple these
 two functions (where appropriate), which means abstraction of common patterns becomes possible.
 
+NOTE: 0.2-stable has BC-breaking API changes, and is supported only for Rails &gt;= 2.1.x.  Version 0.2.0 was released on Sept 14th 2008.
+You should use 0.1-stable in your existing projects until you have runs your specs and whatnot.
+
+If you want to know more about why I changed the API in 0.2 look at the bottom of this README
+
+
 === Example
 
   class FooController &lt; ApplicationController
@@ -45,6 +47,26 @@ RSpec is used for testing, so the tests are in &lt;tt&gt;spec/&lt;/tt&gt; rather than
 garlic (at http://github.com/ianwhite/garlic) is used for CI.  To run the CI suite have a look at
 garlic_example.rb
 
+=== Why change the API in 0.2?
+
+repsonse_for &lt;= v0.1 intercepted respond_to calls to allow overriding of these by class level declarations.  This turns out to have some 
+headaches, such as:
+
+* If you have some bail-out code in before_filters which uses respond_to, then response_for tries to overwrite this.  This meant that I had
+  to write response_for to only kick in once before_filters had run.  This made for some funky smelling code.
+* Sometimes your bail out code runs after the before_filters, in a superclass action for example, or just as part of your action (perhaps in
+  another method).  The above hack doesn't work for this case (the before_filters have run).  The solution in this case was to use
+  respond_to_without_response_for in any bail out code.
+* Conceptually, overriding code declared in methods, with code declared at the class level, is weird.  Here's an example
+
+  class FooController &lt; SuperclassController
+    response_for :index #&#160;override Superclass's index respond_to
+    
+    def index
+      respond_to  # one might expect this to override the above, as its declared later - but it wont!
+    end
+  end
+
 == Previous Versions: 0.1
 
 There is a branch for rails 2.0 users on this release.  If you are using rails 2.0, then you want the 0.1-stable-rails2.0 branch.  If you are</diff>
      <filename>README.rdoc</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>8ac908ade87b73d18340fccb10e607123806a879</id>
    </parent>
  </parents>
  <author>
    <name>Ian White</name>
    <email>ian.w.white@gmail.com</email>
  </author>
  <url>http://github.com/ianwhite/response_for/commit/7700d0813bc19faf0e2d8834f3c83c29379b4988</url>
  <id>7700d0813bc19faf0e2d8834f3c83c29379b4988</id>
  <committed-date>2008-09-17T14:03:36-07:00</committed-date>
  <authored-date>2008-09-17T14:03:36-07:00</authored-date>
  <message>Updated README with more notes about the API change</message>
  <tree>191bd2de0434fc6e18e9434c40b238493f61d0c1</tree>
  <committer>
    <name>Ian White</name>
    <email>ian.w.white@gmail.com</email>
  </committer>
</commit>
