<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>actionpack/lib/action_controller/new_base/rescuable.rb</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -160,7 +160,7 @@ module ActionController #:nodoc:
         def convert_only_and_except_options_to_sets_of_strings(opts)
           [:only, :except].each do |key|
             if values = opts[key]
-              opts[key] = Array(values).map(&amp;:to_s).to_set
+              opts[key] = Array(values).map {|val| val.to_s }.to_set
             end
           end
         end</diff>
      <filename>actionpack/lib/action_controller/base/chained/filters.rb</filename>
    </modified>
    <modified>
      <diff>@@ -6,6 +6,7 @@ use &quot;ActionDispatch::Failsafe&quot;
 use &quot;ActionDispatch::ShowExceptions&quot;, lambda { ActionController::Base.consider_all_requests_local }
 use &quot;ActionDispatch::Rescue&quot;, lambda {
   controller = (::ApplicationController rescue ActionController::Base)
+  # TODO: Replace with controller.action(:_rescue_action)
   controller.method(:rescue_action)
 }
 </diff>
      <filename>actionpack/lib/action_controller/dispatch/middlewares.rb</filename>
    </modified>
    <modified>
      <diff>@@ -7,6 +7,7 @@ module ActionController
   autoload :Rails2Compatibility,  &quot;action_controller/new_base/compatibility&quot;
   autoload :Redirector,           &quot;action_controller/new_base/redirector&quot;
   autoload :Renderer,             &quot;action_controller/new_base/renderer&quot;
+  autoload :Rescue,               &quot;action_controller/new_base/rescuable&quot;
   autoload :Testing,              &quot;action_controller/new_base/testing&quot;
   autoload :UrlFor,               &quot;action_controller/new_base/url_for&quot;
   </diff>
      <filename>actionpack/lib/action_controller/new_base.rb</filename>
    </modified>
    <modified>
      <diff>@@ -12,14 +12,40 @@ module ActionController
     include ActionController::Renderer
     include ActionController::Layouts
     include ActionController::ConditionalGet
-    
+
     # Legacy modules
     include SessionManagement
     include ActionDispatch::StatusCodes
-    
+
     # Rails 2.x compatibility
     include ActionController::Rails2Compatibility
-    
+
+    # TODO: Extract into its own module
+    # This should be moved together with other normalizing behavior
+    module ImplicitRender
+      def process_action(method_name)
+        ret = super
+        render if response_body.nil?
+        ret
+      end
+
+      def _implicit_render
+        render
+      end
+
+      def method_for_action(action_name)
+        super || begin
+          if view_paths.find_by_parts?(action_name.to_s, {:formats =&gt; formats, :locales =&gt; [I18n.locale]}, controller_path)
+            &quot;_implicit_render&quot;
+          end
+        end
+      end
+    end
+
+    include ImplicitRender
+
+    include ActionController::Rescue
+
     def self.inherited(klass)
       ::ActionController::Base.subclasses &lt;&lt; klass.to_s
       super
@@ -113,23 +139,5 @@ module ActionController
       
       super(url, status)
     end
-    
-    def process_action(method_name)
-      ret = super
-      render if response_body.nil?
-      ret
-    end
-
-    def _implicit_render
-      render
-    end
-
-    def method_for_action(action_name)
-      super || begin
-        if view_paths.find_by_parts?(action_name.to_s, {:formats =&gt; formats, :locales =&gt; [I18n.locale]}, controller_path)
-          &quot;_implicit_render&quot;
-        end
-      end
-    end
   end
 end
\ No newline at end of file</diff>
      <filename>actionpack/lib/action_controller/new_base/base.rb</filename>
    </modified>
    <modified>
      <diff>@@ -45,6 +45,14 @@ module ActionController
       
       cattr_accessor :use_accept_header
       self.use_accept_header = true
+
+      cattr_accessor :page_cache_directory
+      self.page_cache_directory = defined?(Rails.public_path) ? Rails.public_path : &quot;&quot;
+
+      cattr_reader :cache_store
+
+      cattr_accessor :consider_all_requests_local
+      self.consider_all_requests_local = true
     end
     
     module ClassMethods
@@ -53,6 +61,11 @@ module ActionController
       def rescue_action(env)
         raise env[&quot;action_dispatch.rescue.exception&quot;]
       end
+
+      # Defines the storage option for cached fragments
+      def cache_store=(store_option)
+        @@cache_store = ActiveSupport::Cache.lookup_store(store_option)
+      end
     end
     
     def initialize(*)</diff>
      <filename>actionpack/lib/action_controller/new_base/compatibility.rb</filename>
    </modified>
    <modified>
      <diff>@@ -48,8 +48,6 @@ module ActionController
       @_response = ActionDispatch::Response.new
       @_response.request = request
       process(name)
-      @_response.body = response_body
-      @_response.prepare!
       to_rack
     end
     
@@ -62,6 +60,8 @@ module ActionController
     
     # :api: private
     def to_rack
+      @_response.body = response_body
+      @_response.prepare!
       @_response.to_a
     end
   end</diff>
      <filename>actionpack/lib/action_controller/new_base/http.rb</filename>
    </modified>
    <modified>
      <diff>@@ -7,7 +7,7 @@ module ActionController
       @_response = response
       @_response.request = request
       ret = process(request.parameters[:action])
-      @_response.body = self.response_body
+      @_response.body = self.response_body || &quot; &quot;
       @_response.prepare!
       set_test_assigns
       ret</diff>
      <filename>actionpack/lib/action_controller/new_base/testing.rb</filename>
    </modified>
    <modified>
      <diff>@@ -11,11 +11,19 @@ require 'action_controller/new_base'
 require 'fixture_template'
 require 'action_controller/testing/process2'
 require 'action_view/test_case'
+require 'action_controller/testing/integration'
+require 'active_support/dependencies'
+
+ActiveSupport::Dependencies.hook!
 
 FIXTURE_LOAD_PATH = File.join(File.dirname(__FILE__), 'fixtures')
 
 module ActionController
-  
+  Base.session = {
+  :key         =&gt; '_testing_session',
+  :secret      =&gt; '8273f16463985e2b3747dc25e30f2528'
+}
+
   class ActionControllerError &lt; StandardError #:nodoc:
   end
 
@@ -126,6 +134,6 @@ module ActionController
             &quot;Expected no partials to be rendered&quot;
         end
       end
-    end    
+    end
   end
 end</diff>
      <filename>actionpack/test/abstract_unit2.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>7e10504bdeab14ea70a942110a1b1ef6d8467ed3</id>
    </parent>
  </parents>
  <author>
    <name>Yehuda Katz + Carl Lerche</name>
    <email>ykatz+clerche@engineyard.com</email>
  </author>
  <url>http://github.com/wycats/rails/commit/5a45446cff0daf4ca747257a8779dcd5d9cae1d7</url>
  <id>5a45446cff0daf4ca747257a8779dcd5d9cae1d7</id>
  <committed-date>2009-05-15T17:49:11-07:00</committed-date>
  <authored-date>2009-05-15T17:49:11-07:00</authored-date>
  <message>Ported Rescuable to new base</message>
  <tree>23a7ff81593e1d1060f01f340852fd8477c825c4</tree>
  <committer>
    <name>Yehuda Katz + Carl Lerche</name>
    <email>ykatz+clerche@engineyard.com</email>
  </committer>
</commit>
