Merge pull request #8154 from bogdan/has_one_association_performance

Remove unwanted transaction when has one association is built

Conflicts:
	activerecord/CHANGELOG.md
Add release date of Rails 3.2.9 to documentation
Merge pull request #8193 from claudiob/add_rails329_release_date

Add release date of Rails 3.2.9 to documentation [ci skip]
Lock mocha in ~> 0.12.x until we fix the Ruby 1.8.7 issues with 0.13.0
backport #8185, `#as_json` isolates options when encoding a hash.

Setting options in a custom `#as_json` method had side effects.
Modifications of the `options` hash leaked outside and influenced
the conversion of other objects contained in the hash.

Conflicts:

	activesupport/CHANGELOG.md
Copy Mocha bug fix.

A bug was fixed [1] in Mocha's integration with Test::Unit, but this
monkey-patching code was copied before the fix. We need to copy the
fixed version.

The bug meant that an unexpected invocation against a mock within the
teardown method caused a test *error* and not a test *failure*.

[1]
https://github.com/freerange/mocha/commit/f1ff6475ca2871f2977ab84cabbbfe2adadbbee6#diff-5
Use MiniTest in Ruby 1.8 if it is available.

ActiveSupport::TestCase was always inheriting from Test::Unit::TestCase.
This works fine in Ruby 1.9 where Test::Unit::TestCase is a thin wrapper
around MiniTest::Unit::TestCase, but does not work in Ruby 1.8 if the
MiniTest gem is used. What happens is that ActiveSupport inherits from
the Test::Unit::TestCase provided by the standard library, but then
since Minitest is defined, it then seems to proceed on the assumption
that ActiveSupport::TestCase has MiniTest::Unit::TestCase in its
ancestor chain. However, in this case it does not.

The fix is simply to choose which test library TestCase to inherit from
using the same logic used elsewhere to detect MiniTest.

I noticed this bug causing issues when using MiniTest and Mocha
in Ruby 1.8, but there may well be other issues.
Fix for Test::Unit Mocha compatibility.

Mocha is now using a single AssertionCounter which needs a reference to
the testcase as opposed to the result.

This change is an unfortunate consequence of the copying of a chunk of
Mocha's internal code in order to monkey-patch Test::Unit.
Avoid a Mocha deprecation warning.
Merge pull request #8199 from senny/backport_8182

backport #8185, `#as_json` isolates options when encoding a hash.
Merge pull request #8200 from freerange/3-2-stable-with-mocha-fixes

Fix 3-2-stable to work with Mocha v0.13.0
Fix json encoding test with ruby 1.8.7 and random hash order

Introduced in 3e53fe6.
Update mocha version to 0.13.0 and change requires
Add changelog entry for #8200 [ci skip]
Fix warning with assigned but not used variable
Revert "Use MiniTest in Ruby 1.8 if it is available."

This reverts commit c3e186ec8dcb2ec26d5d56f3e89123b1350c4a6f.

Reason: too many incompatibilities make a lot of Rails tests fail in 1.9.
Might need more work to get this done properly in 3-2 if necessary.
backport #8176, `#pluck` can be used on a relation with `select` clause.

Conflicts:

	activerecord/CHANGELOG.md
	activerecord/lib/active_record/relation/calculations.rb
	activerecord/test/cases/calculations_test.rb
Backport #8074 to 3-2-stable. Use query cache/uncache, when using not only database.yml but also DATABASE_URL.
Merge pull request #8205 from kennyj/fix_6951-32

Backport #8074 to 3-2-stable. Use query cache/uncache, when using not only database.yml but also DATABASE_URL.
Use nil? instead of blank? to check dynamic finder result

It's safe to use `nil?` instead of `blank?` because it's impossible to get an array on finder with bang;
`all_by` finder matches against regex without bang: `when /^find_(all_|last_)?by_([_a-zA-Z]\w*)$/`.

Fixes #7238