<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -12,7 +12,7 @@ end
 desc 'Run all tests by default'
 task :default =&gt; :test
 
-%w(test rdoc pgem package release).each do |task_name|
+%w(test isolated_test rdoc pgem package release).each do |task_name|
   desc &quot;Run #{task_name} task for all projects&quot;
   task task_name do
     PROJECTS.each do |project|</diff>
      <filename>Rakefile</filename>
    </modified>
    <modified>
      <diff>@@ -28,6 +28,12 @@ Rake::TestTask.new { |t|
   t.warning = false
 }
 
+task :isolated_test do
+  ruby = File.join(*RbConfig::CONFIG.values_at('bindir', 'RUBY_INSTALL_NAME'))
+  Dir.glob(&quot;test/*_test.rb&quot;).all? do |file|
+    system(ruby, '-Ilib:test', file)
+  end or raise &quot;Failures&quot;
+end
 
 # Generate the RDoc documentation
 Rake::RDocTask.new { |rdoc|</diff>
      <filename>actionmailer/Rakefile</filename>
    </modified>
    <modified>
      <diff>@@ -12,6 +12,7 @@ end
 
 require 'tmail'
 
+require 'active_support/core_ext/kernel/reporting'
 silence_warnings do
   TMail::Encoder.const_set(&quot;MAX_LINE_LEN&quot;, 200)
 end</diff>
      <filename>actionmailer/lib/action_mailer/vendor/tmail.rb</filename>
    </modified>
    <modified>
      <diff>@@ -21,16 +21,9 @@
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #++
 
-begin
-  require 'active_support'
-rescue LoadError
-  activesupport_path = &quot;#{File.dirname(__FILE__)}/../../activesupport/lib&quot;
-  if File.directory?(activesupport_path)
-    $:.unshift activesupport_path
-    require 'active_support'
-  end
-end
-require 'active_support/core/all'
+activesupport_path = &quot;#{File.dirname(__FILE__)}/../../activesupport/lib&quot;
+$:.unshift activesupport_path if File.directory?(activesupport_path)
+require 'active_support'
 
 require File.join(File.dirname(__FILE__), &quot;action_pack&quot;)
 </diff>
      <filename>actionpack/lib/action_controller.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,7 @@
 require 'action_controller/deprecated'
 require 'set'
+require 'active_support/core_ext/class/inheritable_attributes'
+require 'active_support/core_ext/module/attr_internal'
 
 module ActionController #:nodoc:
   class ActionControllerError &lt; StandardError #:nodoc:</diff>
      <filename>actionpack/lib/action_controller/base/base.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,4 @@
-require 'benchmark'
+require 'active_support/core_ext/benchmark'
 
 module ActionController #:nodoc:
   # The benchmarking module times the performance of actions and reports to the logger. If the Active Record</diff>
      <filename>actionpack/lib/action_controller/base/chained/benchmarking.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,3 +1,5 @@
+require 'active_support/base64'
+
 module ActionController
   module HttpAuthentication
     # Makes it dead easy to do HTTP Basic authentication.
@@ -276,7 +278,7 @@ module ActionController
         t = time.to_i
         hashed = [t, secret_key]
         digest = ::Digest::MD5.hexdigest(hashed.join(&quot;:&quot;))
-        Base64.encode64(&quot;#{t}:#{digest}&quot;).gsub(&quot;\n&quot;, '')
+        ActiveSupport::Base64.encode64(&quot;#{t}:#{digest}&quot;).gsub(&quot;\n&quot;, '')
       end
 
       # Might want a shorter timeout depending on whether the request
@@ -285,7 +287,7 @@ module ActionController
       # allow a user to use new nonce without prompting user again for their
       # username and password.
       def validate_nonce(request, value, seconds_to_timeout=5*60)
-        t = Base64.decode64(value).split(&quot;:&quot;).first.to_i
+        t = ActiveSupport::Base64.decode64(value).split(&quot;:&quot;).first.to_i
         nonce(t) == value &amp;&amp; (t - Time.now.to_i).abs &lt;= seconds_to_timeout
       end
 </diff>
      <filename>actionpack/lib/action_controller/base/http_authentication.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,3 +1,7 @@
+require 'active_support/core_ext/enumerable'
+require 'active_support/core_ext/class/delegating_attributes'
+require 'active_support/core_ext/class/inheritable_attributes'
+
 module ActionController #:nodoc:
   module Layout #:nodoc:
     def self.included(base)</diff>
      <filename>actionpack/lib/action_controller/base/layout.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,3 +1,5 @@
+require 'active_support/core_ext/module'
+
 module ActionController
   # The record identifier encapsulates a number of naming conventions for dealing with records, like Active Records or 
   # Active Resources or pretty much any other model type that has an id. These patterns are then used to try elevate</diff>
      <filename>actionpack/lib/action_controller/record_identifier.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,3 +1,5 @@
+require 'active_support/core_ext/hash/except'
+
 module ActionController
   module Routing
     class RouteBuilder #:nodoc:</diff>
      <filename>actionpack/lib/action_controller/routing/builder.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,3 +1,5 @@
+require 'active_support/core_ext/object/misc'
+
 module ActionController
   module Routing
     class Route #:nodoc:
@@ -65,7 +67,7 @@ module ActionController
       #   map.connect '/page/:id', :controller =&gt; 'pages', :action =&gt; 'show', :id =&gt; /\d+/
       #
       def parameter_shell
-        @parameter_shell ||= returning({}) do |shell|
+        @parameter_shell ||= {}.tap do |shell|
           requirements.each do |key, requirement|
             shell[key] = requirement unless requirement.is_a? Regexp
           end
@@ -76,7 +78,7 @@ module ActionController
       # includes keys that appear inside the path, and keys that have requirements
       # placed upon them.
       def significant_keys
-        @significant_keys ||= returning([]) do |sk|
+        @significant_keys ||= [].tap do |sk|
           segments.each { |segment| sk &lt;&lt; segment.key if segment.respond_to? :key }
           sk.concat requirements.keys
           sk.uniq!
@@ -86,7 +88,7 @@ module ActionController
       # Return a hash of key/value pairs representing the keys in the route that
       # have defaults, or which are specified by non-regexp requirements.
       def defaults
-        @defaults ||= returning({}) do |hash|
+        @defaults ||= {}.tap do |hash|
           segments.each do |segment|
             next unless segment.respond_to? :default
             hash[segment.key] = segment.default unless segment.default.nil?</diff>
      <filename>actionpack/lib/action_controller/routing/route.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,5 @@
 require 'rack/session/abstract/id'
+require 'active_support/core_ext/object/conversions'
 
 module ActionController #:nodoc:
   class TestRequest &lt; ActionDispatch::TestRequest #:nodoc:</diff>
      <filename>actionpack/lib/action_controller/testing/process.rb</filename>
    </modified>
    <modified>
      <diff>@@ -21,16 +21,9 @@
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #++
 
-begin
-  require 'active_support'
-rescue LoadError
-  activesupport_path = &quot;#{File.dirname(__FILE__)}/../../activesupport/lib&quot;
-  if File.directory?(activesupport_path)
-    $:.unshift activesupport_path
-    require 'active_support'
-  end
-end
-require 'active_support/core/all'
+activesupport_path = &quot;#{File.dirname(__FILE__)}/../../activesupport/lib&quot;
+$:.unshift activesupport_path if File.directory?(activesupport_path)
+require 'active_support'
 
 begin
   gem 'rack', '~&gt; 1.1.pre'</diff>
      <filename>actionpack/lib/action_dispatch.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,5 @@
 require 'set'
+require 'active_support/core_ext/class/attribute_accessors'
 
 module Mime
   SET              = []</diff>
      <filename>actionpack/lib/action_dispatch/http/mime_type.rb</filename>
    </modified>
    <modified>
      <diff>@@ -3,6 +3,7 @@ require 'stringio'
 require 'strscan'
 
 require 'active_support/memoizable'
+require 'active_support/core_ext/hash/indifferent_access'
 
 module ActionDispatch
   class Request &lt; Rack::Request</diff>
      <filename>actionpack/lib/action_dispatch/http/request.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,5 @@
 require 'digest/md5'
+require 'active_support/core_ext/module/delegation'
 
 module ActionDispatch # :nodoc:
   # Represents an HTTP response generated by a controller action. One can use</diff>
      <filename>actionpack/lib/action_dispatch/http/response.rb</filename>
    </modified>
    <modified>
      <diff>@@ -21,16 +21,9 @@
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #++
 
-begin
-  require 'active_support'
-rescue LoadError
-  activesupport_path = &quot;#{File.dirname(__FILE__)}/../../activesupport/lib&quot;
-  if File.directory?(activesupport_path)
-    $:.unshift activesupport_path
-    require 'active_support'
-  end
-end
-require 'active_support/core/all'
+activesupport_path = &quot;#{File.dirname(__FILE__)}/../../activesupport/lib&quot;
+$:.unshift activesupport_path if File.directory?(activesupport_path)
+require 'active_support'
 
 require File.join(File.dirname(__FILE__), &quot;action_pack&quot;)
 </diff>
      <filename>actionpack/lib/action_view.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,3 +1,6 @@
+require 'active_support/core_ext/module/attr_internal'
+require 'active_support/core_ext/module/delegation'
+
 module ActionView #:nodoc:
   class ActionViewError &lt; StandardError #:nodoc:
   end</diff>
      <filename>actionpack/lib/action_view/base.rb</filename>
    </modified>
    <modified>
      <diff>@@ -2,6 +2,7 @@ require 'cgi'
 require 'action_view/helpers/date_helper'
 require 'action_view/helpers/tag_helper'
 require 'action_view/helpers/form_tag_helper'
+require 'active_support/core_ext/class/inheritable_attributes'
 
 module ActionView
   module Helpers
@@ -1039,8 +1040,8 @@ module ActionView
     end
   end
 
-  class Base
-    cattr_accessor :default_form_builder
-    self.default_form_builder = ::ActionView::Helpers::FormBuilder
+  class &lt;&lt; Base
+    attr_accessor :default_form_builder
   end
-end
\ No newline at end of file
+  Base.default_form_builder = ::ActionView::Helpers::FormBuilder
+end</diff>
      <filename>actionpack/lib/action_view/helpers/form_helper.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,5 @@
 require 'erb'
+require 'active_support/core_ext/class/attribute_accessors'
 
 module ActionView
   module TemplateHandlers</diff>
      <filename>actionpack/lib/action_view/template/handlers/erb.rb</filename>
    </modified>
    <modified>
      <diff>@@ -4,7 +4,7 @@ $:.unshift(File.dirname(__FILE__) + '/../lib')
 
 require 'rubygems'
 require 'test/unit'
-require 'active_support/core/all'
+require 'active_support'
 require 'active_support/test_case'
 require 'action_controller/abstract'
 require 'action_view'
@@ -18,4 +18,4 @@ begin
   Debugger.start
 rescue LoadError
   # Debugging disabled. `gem install ruby-debug` to enable.
-end
\ No newline at end of file
+end</diff>
      <filename>actionpack/test/abstract_controller/test_helper.rb</filename>
    </modified>
    <modified>
      <diff>@@ -5,7 +5,6 @@ $:.unshift(File.dirname(__FILE__) + '/lib')
 
 require 'test/unit'
 require 'active_support'
-require 'active_support/core/all'
 require 'active_support/test_case'
 require 'action_controller/abstract'
 require 'action_controller/new_base'
@@ -129,4 +128,4 @@ module ActionController
       end
     end    
   end
-end
\ No newline at end of file
+end</diff>
      <filename>actionpack/test/abstract_unit2.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,5 @@
 require 'abstract_unit'
+require 'logger'
 
 class Address
   def Address.count(conditions = nil, join = nil)</diff>
      <filename>actionpack/test/controller/addresses_render_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,5 @@
 require 'abstract_unit'
+require 'logger'
 require 'pp' # require 'pp' early to prevent hidden_methods from not picking up the pretty-print methods until too late
 
 # Provide some controller to run the tests on.</diff>
      <filename>actionpack/test/controller/base_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,5 @@
 require 'abstract_unit'
+require 'logger'
 
 class CaptureController &lt; ActionController::Base
   def self.controller_name; &quot;test&quot;; end</diff>
      <filename>actionpack/test/controller/capture_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,5 @@
 require 'abstract_unit'
+require 'active_support/core_ext/kernel/reporting'
 
 ActionController::Base.helpers_dir = File.dirname(__FILE__) + '/../fixtures/helpers'
 </diff>
      <filename>actionpack/test/controller/helper_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -11,6 +11,12 @@ Rake::TestTask.new do |t|
   t.verbose = true
   t.warning = true
 end
+task :isolated_test do
+  ruby = File.join(*RbConfig::CONFIG.values_at('bindir', 'RUBY_INSTALL_NAME'))
+  Dir.glob(&quot;test/**/*_test.rb&quot;).all? do |file|
+    system(ruby, '-Ilib:test', file)
+  end or raise &quot;Failures&quot;
+end
 
 # Generate the RDoc documentation
 Rake::RDocTask.new do |rdoc|</diff>
      <filename>activemodel/Rakefile</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,5 @@
 require 'test_helper'
+require 'active_model/state_machine/event'
 
 class EventTest &lt; ActiveModel::TestCase
   def setup</diff>
      <filename>activemodel/test/state_machine/event_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,5 @@
 require 'test_helper'
+require 'active_model/state_machine/state_transition'
 
 class StateTransitionTest &lt; ActiveModel::TestCase
   test 'should set from, to, and opts attr readers' do</diff>
      <filename>activemodel/test/state_machine/state_transition_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -32,6 +32,9 @@ desc 'Run mysql, sqlite, and postgresql tests'
 task :test =&gt; defined?(JRUBY_VERSION) ?
   %w(test_jdbcmysql test_jdbcsqlite3 test_jdbcpostgresql) :
   %w(test_mysql test_sqlite3 test_postgresql)
+task :isolated_test =&gt; defined?(JRUBY_VERSION) ?
+  %w(isolated_test_jdbcmysql isolated_test_jdbcsqlite3 isolated_test_jdbcpostgresql) :
+  %w(isolated_test_mysql isolated_test_sqlite3 isolated_test_postgresql)
 
 %w( mysql postgresql sqlite sqlite3 firebird db2 oracle sybase openbase frontbase jdbcmysql jdbcpostgresql jdbcsqlite3 jdbcderby jdbch2 jdbchsqldb ).each do |adapter|
   Rake::TestTask.new(&quot;test_#{adapter}&quot;) { |t|</diff>
      <filename>activerecord/Rakefile</filename>
    </modified>
    <modified>
      <diff>@@ -24,7 +24,6 @@
 activesupport_path = &quot;#{File.dirname(__FILE__)}/../../activesupport/lib&quot;
 $:.unshift(activesupport_path) if File.directory?(activesupport_path)
 require 'active_support'
-require 'active_support/core/all'
 
 module ActiveRecord
   # TODO: Review explicit loads to see if they will automatically be handled by the initilizer.</diff>
      <filename>activerecord/lib/active_record.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,3 +1,5 @@
+require 'active_support/core_ext/module/delegation'
+
 module ActiveRecord
   class InverseOfAssociationNotFoundError &lt; ActiveRecordError #:nodoc:
     def initialize(reflection)</diff>
      <filename>activerecord/lib/active_record/associations.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,3 +1,5 @@
+require 'active_support/core_ext/enumerable'
+
 module ActiveRecord
   module AttributeMethods #:nodoc:
     extend ActiveSupport::DependencyModule</diff>
      <filename>activerecord/lib/active_record/attribute_methods.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,15 @@
 require 'yaml'
 require 'set'
 require 'active_support/dependencies'
+require 'active_support/core_ext/class/attribute_accessors'
+require 'active_support/core_ext/class/delegating_attributes'
+require 'active_support/core_ext/class/inheritable_attributes'
+require 'active_support/core_ext/array/extract_options'
+require 'active_support/core_ext/hash/deep_merge'
+require 'active_support/core_ext/hash/indifferent_access'
+require 'active_support/core_ext/hash/slice'
+require 'active_support/core_ext/string/behavior'
+require 'active_support/core/time'
 
 module ActiveRecord #:nodoc:
   # Generic Active Record exception class.
@@ -1888,7 +1897,7 @@ module ActiveRecord #:nodoc:
                   else
                     find(:#{finder}, options.merge(finder_options))
                   end
-                  #{'result || raise(RecordNotFound, &quot;Couldn\'t find #{name} with #{attributes.to_a.collect {|pair| &quot;#{pair.first} = #{pair.second}&quot;}.join(\', \')}&quot;)' if bang}
+                  #{'result || raise(RecordNotFound, &quot;Couldn\'t find #{name} with #{attributes.to_a.collect { |pair| pair.join(\' = \') }.join(\', \')}&quot;)' if bang}
                 end
               }, __FILE__, __LINE__
               send(method_id, *arguments)
@@ -2610,11 +2619,11 @@ module ActiveRecord #:nodoc:
       # Note: The new instance will share a link to the same attributes as the original class. So any change to the attributes in either
       # instance will affect the other.
       def becomes(klass)
-        returning klass.new do |became|
-          became.instance_variable_set(&quot;@attributes&quot;, @attributes)
-          became.instance_variable_set(&quot;@attributes_cache&quot;, @attributes_cache)
-          became.instance_variable_set(&quot;@new_record&quot;, new_record?)
-        end
+        became = klass.new
+        became.instance_variable_set(&quot;@attributes&quot;, @attributes)
+        became.instance_variable_set(&quot;@attributes_cache&quot;, @attributes_cache)
+        became.instance_variable_set(&quot;@new_record&quot;, new_record?)
+        became
       end
 
       # Updates a single attribute and saves the record without going through the normal validation procedure.</diff>
      <filename>activerecord/lib/active_record/base.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,6 @@
 require 'monitor'
 require 'set'
+require 'active_support/core_ext/module/synchronization'
 
 module ActiveRecord
   # Raised when a connection could not be obtained within the connection</diff>
      <filename>activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,3 +1,5 @@
+require 'active_support/core_ext/big_decimal/conversions'
+
 module ActiveRecord
   module ConnectionAdapters # :nodoc:
     module Quoting</diff>
      <filename>activerecord/lib/active_record/connection_adapters/abstract/quoting.rb</filename>
    </modified>
    <modified>
      <diff>@@ -12,6 +12,8 @@ require 'active_record/connection_adapters/abstract/connection_pool'
 require 'active_record/connection_adapters/abstract/connection_specification'
 require 'active_record/connection_adapters/abstract/query_cache'
 
+require 'active_support/core_ext/benchmark'
+
 module ActiveRecord
   module ConnectionAdapters # :nodoc:
     # ActiveRecord supports multiple database systems. AbstractAdapter and</diff>
      <filename>activerecord/lib/active_record/connection_adapters/abstract_adapter.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,5 @@
 require 'active_record/connection_adapters/abstract_adapter'
+require 'active_support/core_ext/kernel/requires'
 require 'set'
 
 module MysqlCompat #:nodoc:</diff>
      <filename>activerecord/lib/active_record/connection_adapters/mysql_adapter.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,5 @@
 require 'active_record/connection_adapters/abstract_adapter'
+require 'active_support/core_ext/kernel/requires'
 
 begin
   require_library_or_gem 'pg'</diff>
      <filename>activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb</filename>
    </modified>
    <modified>
      <diff>@@ -25,9 +25,9 @@ module ActiveRecord
   module ConnectionAdapters #:nodoc:
     class SQLite3Adapter &lt; SQLiteAdapter # :nodoc:
       def table_structure(table_name)
-        returning structure = @connection.table_info(quote_table_name(table_name)) do
-          raise(ActiveRecord::StatementInvalid, &quot;Could not find table '#{table_name}'&quot;) if structure.empty?
-        end
+        structure = @connection.table_info(quote_table_name(table_name))
+        raise(ActiveRecord::StatementInvalid, &quot;Could not find table '#{table_name}'&quot;) if structure.empty?
+        structure
       end
     end
   end</diff>
      <filename>activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,5 @@
 require 'active_record/connection_adapters/abstract_adapter'
+require 'active_support/core_ext/kernel/requires'
 
 module ActiveRecord
   class Base</diff>
      <filename>activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb</filename>
    </modified>
    <modified>
      <diff>@@ -168,7 +168,9 @@ module ActiveRecord
 
     module ClassMethods
       def self.extended(base)
-        base.metaclass.alias_method_chain(:alias_attribute, :dirty)
+        class &lt;&lt; base
+          alias_method_chain :alias_attribute, :dirty
+        end
       end
 
       def alias_attribute_with_dirty(new_name, old_name)</diff>
      <filename>activerecord/lib/active_record/dirty.rb</filename>
    </modified>
    <modified>
      <diff>@@ -3,6 +3,7 @@ require 'yaml'
 require 'csv'
 require 'active_support/dependencies'
 require 'active_support/test_case'
+require 'active_support/core_ext/logger'
 
 if RUBY_VERSION &lt; '1.9'
   module YAML #:nodoc:</diff>
      <filename>activerecord/lib/active_record/fixtures.rb</filename>
    </modified>
    <modified>
      <diff>@@ -511,11 +511,11 @@ module ActiveRecord
             raise DuplicateMigrationNameError.new(name.camelize) 
           end
           
-          klasses &lt;&lt; returning(MigrationProxy.new) do |migration|
-            migration.name     = name.camelize
-            migration.version  = version
-            migration.filename = file
-          end
+          migration = MigrationProxy.new
+          migration.name     = name.camelize
+          migration.version  = version
+          migration.filename = file
+          klasses &lt;&lt; migration
         end
         
         migrations = migrations.sort_by(&amp;:version)</diff>
      <filename>activerecord/lib/active_record/migration.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,3 +1,6 @@
+require 'active_support/core_ext/array'
+require 'active_support/core_ext/hash/except'
+
 module ActiveRecord
   module NamedScope
     extend ActiveSupport::DependencyModule</diff>
      <filename>activerecord/lib/active_record/named_scope.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,3 +1,6 @@
+require 'active_support/core_ext/hash/except'
+require 'active_support/core_ext/object/try'
+
 module ActiveRecord
   module NestedAttributes #:nodoc:
     extend ActiveSupport::DependencyModule</diff>
      <filename>activerecord/lib/active_record/nested_attributes.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,5 @@
 require 'stringio'
-require 'bigdecimal'
+require 'active_support/core_ext/big_decimal'
 
 module ActiveRecord
   # This class is used to dump the database schema for some connection to some
@@ -176,4 +176,4 @@ HEADER
         end
       end
   end
-end
\ No newline at end of file
+end</diff>
      <filename>activerecord/lib/active_record/schema_dumper.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,3 @@
-require 'active_support/json'
-
 module ActiveRecord #:nodoc:
   module Serialization
     class Serializer #:nodoc:
@@ -73,16 +71,19 @@ module ActiveRecord #:nodoc:
       end
 
       def serializable_record
-        returning(serializable_record = {}) do
-          serializable_names.each { |name| serializable_record[name] = @record.send(name) }
-          add_includes do |association, records, opts|
+        record = {}
+        serializable_names.each { |name| record[name] = @record.send(name) }
+
+        add_includes do |association, records, opts|
+          record[association] =
             if records.is_a?(Enumerable)
-              serializable_record[association] = records.collect { |r| self.class.new(r, opts).serializable_record }
+              records.collect { |r| self.class.new(r, opts).serializable_record }
             else
-              serializable_record[association] = self.class.new(records, opts).serializable_record
+              self.class.new(records, opts).serializable_record
             end
-          end
         end
+
+        record
       end
 
       def serialize</diff>
      <filename>activerecord/lib/active_record/serialization.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,3 +1,5 @@
+require 'active_support/core_ext/hash/conversions'
+
 module ActiveRecord #:nodoc:
   module Serialization
     # Builds an XML document to represent the model. Some configuration is
@@ -165,8 +167,9 @@ module ActiveRecord #:nodoc:
   class XmlSerializer &lt; ActiveRecord::Serialization::Serializer #:nodoc:
     def builder
       @builder ||= begin
+        require 'builder' unless defined? ::Builder
         options[:indent] ||= 2
-        builder = options[:builder] ||= Builder::XmlMarkup.new(:indent =&gt; options[:indent])
+        builder = options[:builder] ||= ::Builder::XmlMarkup.new(:indent =&gt; options[:indent])
 
         unless options[:skip_instruct]
           builder.instruct!</diff>
      <filename>activerecord/lib/active_record/serializers/xml_serializer.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,3 @@
-require 'builder'
-
 module ActiveRecord
   # Raised by &lt;tt&gt;save!&lt;/tt&gt; and &lt;tt&gt;create!&lt;/tt&gt; when the record is invalid.  Use the
   # +record+ method to retrieve the record which did not validate.
@@ -247,9 +245,10 @@ module ActiveRecord
     #   #       &lt;error&gt;Address can't be blank&lt;/error&gt;
     #   #     &lt;/errors&gt;
     def to_xml(options={})
+      require 'builder' unless defined? ::Builder
       options[:root] ||= &quot;errors&quot;
       options[:indent] ||= 2
-      options[:builder] ||= Builder::XmlMarkup.new(:indent =&gt; options[:indent])
+      options[:builder] ||= ::Builder::XmlMarkup.new(:indent =&gt; options[:indent])
 
       options[:builder].instruct! unless options.delete(:skip_instruct)
       options[:builder].errors do |e|</diff>
      <filename>activerecord/lib/active_record/validations.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,6 @@
 require &quot;cases/helper&quot;
 require 'models/customer'
+require 'active_support/core_ext/exception'
 
 class AggregationsTest &lt; ActiveRecord::TestCase
   fixtures :customers</diff>
      <filename>activerecord/test/cases/aggregations_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -4,6 +4,7 @@ require 'models/author'
 require 'models/comment'
 require 'models/category'
 require 'models/categorization'
+require 'active_support/core_ext/array/random_access'
 
 module Remembered
   extend ActiveSupport::DependencyModule</diff>
      <filename>activerecord/test/cases/associations/eager_load_nested_include_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -24,6 +24,7 @@ require 'models/club'
 require 'models/member'
 require 'models/membership'
 require 'models/sponsor'
+require 'active_support/core_ext/string/conversions'
 
 class ProjectWithAfterCreateHook &lt; ActiveRecord::Base
   set_table_name 'projects'</diff>
      <filename>activerecord/test/cases/associations/has_and_belongs_to_many_associations_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -18,6 +18,7 @@ require 'models/minimalistic'
 require 'models/warehouse_thing'
 require 'models/parrot'
 require 'rexml/document'
+require 'active_support/core_ext/exception'
 
 class Category &lt; ActiveRecord::Base; end
 class Categorization &lt; ActiveRecord::Base; end</diff>
      <filename>activerecord/test/cases/base_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -485,8 +485,9 @@ class FinderTest &lt; ActiveRecord::TestCase
     assert_equal &quot;foo in (#{quoted_nil})&quot;, bind('foo in (?)', [])
   end
 
-  def test_bind_string
-    assert_equal ActiveRecord::Base.connection.quote(''), bind('?', '')
+  def test_bind_empty_string
+    quoted_empty = ActiveRecord::Base.connection.quote('')
+    assert_equal quoted_empty, bind('?', '')
   end
 
   def test_bind_chars</diff>
      <filename>activerecord/test/cases/finder_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -15,6 +15,11 @@ require 'connection'
 
 require 'cases/repair_helper'
 
+begin
+  require 'ruby-debug'
+rescue LoadError
+end
+
 # Show backtraces for deprecated behavior for quicker cleanup.
 ActiveSupport::Deprecation.debug = true
 </diff>
      <filename>activerecord/test/cases/helper.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,5 @@
 require &quot;cases/helper&quot;
+require 'active_support/core_ext/array/random_access'
 require 'models/post'
 require 'models/topic'
 require 'models/comment'
@@ -265,7 +266,7 @@ class NamedScopeTest &lt; ActiveRecord::TestCase
   end
 
   def test_rand_should_select_a_random_object_from_proxy
-    assert Topic.approved.rand.is_a?(Topic)
+    assert_kind_of Topic, Topic.approved.rand
   end
 
   def test_should_use_where_in_query_for_named_scope</diff>
      <filename>activerecord/test/cases/named_scope_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -4,6 +4,7 @@ require &quot;models/ship&quot;
 require &quot;models/bird&quot;
 require &quot;models/parrot&quot;
 require &quot;models/treasure&quot;
+require 'active_support/hash_with_indifferent_access'
 
 module AssertRaiseWithMessage
   def assert_raise_with_message(expected_exception, expected_message)</diff>
      <filename>activerecord/test/cases/nested_attributes_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,3 +1,5 @@
+require 'active_support/core_ext/object/misc'
+
 module MyApplication
   module Business
     class Company &lt; ActiveRecord::Base</diff>
      <filename>activerecord/test/models/company_in_module.rb</filename>
    </modified>
    <modified>
      <diff>@@ -34,6 +34,13 @@ Rake::TestTask.new { |t|
   t.verbose = true
   t.warning = true
 }
+task :isolated_test do
+  ruby = File.join(*RbConfig::CONFIG.values_at('bindir', 'RUBY_INSTALL_NAME'))
+  activesupport_path = &quot;#{File.dirname(__FILE__)}/../activesupport/lib&quot;
+  Dir.glob(&quot;test/**/*_test.rb&quot;).all? do |file|
+    system(ruby, &quot;-Ilib:test:#{activesupport_path}&quot;, file)
+  end or raise &quot;Failures&quot;
+end
 
 
 # Generate the RDoc documentation</diff>
      <filename>activeresource/Rakefile</filename>
    </modified>
    <modified>
      <diff>@@ -1,8 +1,10 @@
+require 'active_support'
 require 'active_support/core_ext/class/attribute_accessors'
 require 'active_support/core_ext/class/inheritable_attributes'
 require 'active_support/core_ext/module/attr_accessor_with_default'
 require 'active_support/core_ext/module/delegation'
 require 'active_support/core_ext/module/aliasing'
+require 'active_support/core_ext/object/blank'
 require 'active_support/core_ext/object/misc'
 require 'set'
 
@@ -1027,7 +1029,7 @@ module ActiveResource
     private
       # Tries to find a resource for a given collection name; if it fails, then the resource is created
       def find_or_create_resource_for_collection(name)
-        find_or_create_resource_for(name.to_s.singularize)
+        find_or_create_resource_for(ActiveSupport::Inflector.singularize(name.to_s))
       end
 
       # Tries to find a resource in a non empty list of nested modules</diff>
      <filename>activeresource/lib/active_resource/base.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,7 @@
 require 'abstract_unit'
 require 'fixtures/person'
 require 'fixtures/street_address'
+require 'active_support/core_ext/hash/conversions'
 
 class CustomMethodsTest &lt; Test::Unit::TestCase
   def setup</diff>
      <filename>activeresource/test/base/custom_methods_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -2,6 +2,7 @@ require 'abstract_unit'
 require &quot;fixtures/person&quot;
 require &quot;fixtures/street_address&quot;
 require 'active_support/core_ext/symbol'
+require 'active_support/core_ext/hash/conversions'
 
 module Highrise
   class Note &lt; ActiveResource::Base</diff>
      <filename>activeresource/test/base/load_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -3,6 +3,7 @@ require &quot;fixtures/person&quot;
 require &quot;fixtures/customer&quot;
 require &quot;fixtures/street_address&quot;
 require &quot;fixtures/beast&quot;
+require 'active_support/core_ext/hash/conversions'
 
 class BaseTest &lt; Test::Unit::TestCase
   def setup</diff>
      <filename>activeresource/test/base_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -22,8 +22,8 @@ Rake::TestTask.new { |t|
   t.warning = true
 }
 task :isolated_test do 
+  ruby = File.join(*RbConfig::CONFIG.values_at('bindir', 'RUBY_INSTALL_NAME'))
   Dir['test/**/*_test.rb'].all? do |file|
-    ruby = File.join(*RbConfig::CONFIG.values_at('bindir', 'RUBY_INSTALL_NAME'))
     system(ruby, '-Ilib:test', file)
   end or raise &quot;Failures&quot;
 end</diff>
      <filename>activesupport/Rakefile</filename>
    </modified>
    <modified>
      <diff>@@ -1,3 +1,6 @@
+require 'active_support/core_ext/array/conversions'
+require 'active_support/core_ext/hash/conversions'
+
 class Object
   # Alias of &lt;tt&gt;to_s&lt;/tt&gt;.
   def to_param</diff>
      <filename>activesupport/lib/active_support/core_ext/object/conversions.rb</filename>
    </modified>
    <modified>
      <diff>@@ -31,6 +31,7 @@ task :test do
     system(ruby, '-Itest', &quot;-I#{File.dirname(__FILE__)}/../activesupport/lib&quot;, file)
   end or raise &quot;Failures&quot;
 end
+task :isolated_test =&gt; :test
 
 Rake::TestTask.new(&quot;regular_test&quot;) do |t|
   t.libs &lt;&lt; 'test' &lt;&lt; &quot;#{File.dirname(__FILE__)}/../activesupport/lib&quot;</diff>
      <filename>railties/Rakefile</filename>
    </modified>
    <modified>
      <diff>@@ -264,8 +264,8 @@ module Rails
     # Action Pack, Action Mailer, and Active Resource) are loaded.
     def require_frameworks
       require 'active_support'
-      require 'active_support/core/all'
       configuration.frameworks.each { |framework| require(framework.to_s) }
+      require 'active_support/core/all'
     rescue LoadError =&gt; e
       # Re-raise as RuntimeError because Mongrel would swallow LoadError.
       raise e.to_s</diff>
      <filename>railties/lib/initializer.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,3 +1,5 @@
+require 'active_support/core_ext/kernel/reporting'
+
 module Rails
   # The Plugin class should be an object which provides the following methods:
   #</diff>
      <filename>railties/lib/rails/plugin.rb</filename>
    </modified>
    <modified>
      <diff>@@ -13,7 +13,6 @@ gem 'mocha', '&gt;= 0.9.5'
 require 'mocha'
 
 require 'active_support'
-require 'active_support/core/all'
 require 'active_support/test_case'
 
 if defined?(RAILS_ROOT)</diff>
      <filename>railties/test/abstract_unit.rb</filename>
    </modified>
    <modified>
      <diff>@@ -3,7 +3,6 @@ $:.unshift File.dirname(__FILE__) + &quot;/../../activesupport/lib&quot;
 
 require 'test/unit'
 require 'active_support'
-require 'active_support/core/all'
 require 'initializer'
 require File.join(File.dirname(__FILE__), 'abstract_unit')
 </diff>
      <filename>railties/test/plugin_test_helper.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>fa5da8ad54d68ea0484825845eb6f6a8e8bca361</id>
    </parent>
  </parents>
  <author>
    <name>Jeremy Kemper</name>
    <email>jeremy@bitsweat.net</email>
  </author>
  <url>http://github.com/rails/rails/commit/e8550ee0329586b32de425e905c7af7e65bc78a8</url>
  <id>e8550ee0329586b32de425e905c7af7e65bc78a8</id>
  <committed-date>2009-05-13T12:00:15-07:00</committed-date>
  <authored-date>2009-05-13T01:10:37-07:00</authored-date>
  <message>Cherry-pick core extensions</message>
  <tree>0cdfe0f9f0d3fb010280ff0453fc553ab6ff2d92</tree>
  <committer>
    <name>Jeremy Kemper</name>
    <email>jeremy@bitsweat.net</email>
  </committer>
</commit>
