From: "Rafael Mendonça França" Date: 2013-07-24T06:44:55+09:00 Subject: [ANN] Rails 3.2.14 has been released! --047d7b10c86fa4a82804e234a026 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Hi everyone, I am happy to announce that Rails 3.2.14 has been released. This is a bug fix release and includes more than 150 commits. I also want to announce that the next 3.2.x release, 3.2.15, will be the **last bug fix release of this family**. After it we will only release security fixes. So, if you have issues on 3.2.x that you think should be included on 3.2.15, let us know thought the [GitHub issues page](https://github.com/rails/rails/issues) and in 3 months we'll evaluate if it is time to release. ## CHANGES since 3.2.13 *Action Mailer* No changes. *Action Pack* * Merge `:action` from routing scope and assign endpoint if both `:controller` and `:action` are present. The endpoint assignment only occurs if there is no `:to` present in the options hash so should only affect routes using the shorthand syntax (i.e. endpoint is inferred from the the path). Fixes #9856 *Yves Senn*, *Andrew White* * Always escape the result of `link_to_unless` method. Before: link_to_unless(true, 'Showing', 'github.com') # =3D> "Showing" After: link_to_unless(true, 'Showing', 'github.com') # =3D> "<b>Showing</b>" *dtaniwaki* * Use a case insensitive URI Regexp for #asset_path. This fix a problem where the same asset path using different case are generating different URIs. Before: image_tag("HTTP://google.com") # =3D> "3D\"Google\"" image_tag("http://google.com") # =3D> "3D\"Google\"" After: image_tag("HTTP://google.com") # =3D> "3D\"Google\"" image_tag("http://google.com") # =3D> "3D\"Google\"" *David Celis + Rafael Mendon=C3=A7a Fran=C3=A7a* * Fix explicit names on multiple file fields. If a file field tag has the multiple option, it is turned into an array field (appending `[]`), but if an explicit name is passed to `file_field` the `[]` is not appended. Fixes #9830. *Ryan McGeary* * Fix assets loading performance in 3.2.13. Issue #8756 uses Sprockets for resolving files that already exist on disk, for those files their extensions don't need to be rewritten. Fixes #9803. *Fred Wu* * Fix `ActionController#action_missing` not being called. Fixes #9799. *Janko Luin* * `ActionView::Helpers::NumberHelper#number_to_human` returns the number unaltered when the units hash does not contain the needed key, e.g. when the number provided is less than the largest key provided. Examples: number_to_human(123, units: {}) # =3D> 123 number_to_human(123, units: { thousand: 'k' }) # =3D> 123 Fixes #9269. Backport #9347. *Michael Hoffman* * Include I18n locale fallbacks in view lookup. Fixes GH#3512. *Juan Barreneche* * Fix `ActionDispatch::Request#formats` when the Accept request-header is an empty string. Fix #7774 [Backport #8977, #9541] *Soylent + Maxime R=C3=A9ty* *Active Model* No changes. *Active Record* * Do not re-create destroyed association when saving the parent object. Fixes #11450. *Paul Nikitochkin* * Do not shallow the original exception in `exec_cache` on PostgreSQL adapter. Fixes #11260. *Rafael Mendon=C3=A7a Fran=C3=A7a* * Fix `ActiveRecord::Store` incorrectly tracking changes of its attributes. Fixes #10373. *Janko Marohni=C4=87* * Fix a bug that prevented the use of the default STI inheritance column (ActiveRecord::Base.inheritance_column =3D 'some_column'.) *chapmajs + Takehiro Adachi* * Fix mysql2 adapter raises the correct exception when executing a query on a closed connection. *Yves Senn* * Fixes bug where `Company.new.contract_ids` would incorrectly load all non-associated contracts. Example: company =3D Company.new # Company has many :contracts # before company.contract_ids # =3D> SELECT ... WHERE `contracts`.`company_i= d` IS NULL # after company.contract_ids # =3D> [] *Jared Armstrong* * Fix the `:primary_key` option for `has_many` associations. Fixes #10693. *Yves Senn* * fixes bug introduced by #3329. Now, when autosaving associations, deletions happen before inserts and saves. This prevents a 'duplicate unique value' database error that would occur if a record being created had the same value on a unique indexed field as that of a record being destroyed. Backport of #10417 *Johnny Holton* * Fix that under some conditions, Active Record could produce invalid SQL of the sort: "SELECT DISTINCT DISTINCT". Backport of #6792. *Ben Woosley* * Require `ActiveRecord::Base` in railtie hooks for rake_tasks, console and runner to avoid circular constant loading issues. Backport #7695. Fixes #7683 and #882 *Ben Holley* * Maintain context for joins within ActiveRecord::Relation merges. Backport #10164. *Neeraj Singh + Andrew Horner* * Make sure the `EXPLAIN` command is never triggered by a `select_db` call. *Daniel Schierbeck* * Revert changes on `pluck` that was ignoring the select clause when the relation already has one. This caused a regression since it changed the behavior in a stable release. Fixes #9777. *Rafael Mendon=C3=A7a Fran=C3=A7a* * Confirm a record has not already been destroyed before decrementing counter cache. *Ben Tucker* * Default values for PostgreSQL bigint types now get parsed and dumped to the schema correctly. Backport #10098. *Erik Peterson* * Removed warning when `auto_explain_threshold_in_seconds` is set and the connection adapter doesn't support explain. This is causing a regression since the Active Record Railtie is trying to connect to the development database in the application boot. *Rafael Mendon=C3=A7a Fran=C3=A7a* * Do not reset `inheritance_column` when it's set explicitly. Backport of #5327. *kennyj + Fred Wu* * Fix a problem wrong exception is occured when raising no translatable exception in PostgreSQL. *kennyj* * Resets the postgres search path in the structure.sql after the structur= e is dumped in order to find schema_migrations table when multiples schemas are used. Fixes #9796. *Juan M. Cuello + Dembskiy Alexander* * Reload the association target if it's stale. `@stale_state` should be nil when a model isn't saved. Fixes #7526. *Larry Lv* * Don't read CSV files during execution of `db:fixtures:load`. CSV support for fixtures was removed some time ago but the task was still loading them, even though later the code was looking for the related yaml file instead. *kennyj* *Active Resource* * Fixes an issue that ActiveResource models ignores ActiveResource::Base.include_root_in_json. Backported from the now separate repo rails/activeresouce. *Xinjiang Lu* *Active Support* * Make `Time.at_with_coercion` retain the second fraction and return local time. Fixes #11350 *Neer Friedman*, *Andrew White* * Fix `ActiveSupport::TaggedLogging` incorrectly providing program name the same as log message even when block is not provided. *Carson Reinke* * Override `Time.at` to support the passing of Time-like values when called with a single argument. *Andrew White* * Revert the changes on unicode character encoding from `ActiveSupport::JSON.encode`. This was causing a regression where the resulting string is always returning UTF-8. Also it changes the behavior of this method on a stable release. Fixes #9498. *Rafael Mendon=C3=A7a Fran=C3=A7a* * Fix `ActiveSupport::TimeZone.parse` when time is at a local DST jump. Fixes #9678. *Andrew White* *Railties* * Fix bugs that crashed `rake test:benchmark`, `rails profiler` and `rails benchmarker`. Fixes #4938. Backport rails/rails-perftest#2. *Dmitry Vorotilin + Yves Senn* * Add support for runner hook. Backport #7695. *Ben Holley* * Fixes bug with scaffold generator with `--assets=3Dfalse --resource-route=3Dfalse`. Fixes #9525. *Arun Agrawal* *Full listing* To see the full list of changes, [check out all the commits on GitHub]( https://github.com/rails/rails/compare/v3.2.13...v3.2.14). ## SHA-1 If you'd like to verify that your gem is the same as the one I've uploaded, please use these SHA-1 hashes: * dd2333744644870efcd149e3adf3c3b6934ec6ed actionmailer-3.2.14.gem * efcfc238115f7db57650dbab348d0b5192f98770 actionpack-3.2.14.gem * d72fadd29e10e2ead9fb0d7371bed5a7fb32c044 activemodel-3.2.14.gem * af7585f9a58d5e643d6e332daede4a0b8ee1de7a activerecord-3.2.14.gem * 188924273139cea07032254987d748aee45f5800 activeresource-3.2.14.gem * e221938399c9cb040ef9285f52b18bfa3e59b10a activesupport-3.2.14.gem * a5d44cf4c65798e925d998f416804cd23c914001 rails-3.2.14.gem * 4e99050427fb47ff515051e78eedf328c9ec5676 railties-3.2.14.gem I'd like to thank you all, every contributor who helped with this release, especially everyone who tried the release candidates. Rafael Mendon=C3=A7a Fran=C3=A7a http://twitter.com/rafaelfranca https://github.com/rafaelfranca --047d7b10c86fa4a82804e234a026 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi everyone,

I am happy to a= nnounce that Rails 3.2.14 has been released. This is a bug fix release and = includes more than 150 commits.

I also want to ann= ounce that the next 3.2.x release, 3.2.15, will be the **last bug fix relea= se of this family**. After it we will only release security fixes. So, if y= ou have issues on 3.2.x that you think should be included on 3.2.15, let us= know thought the
[GitHub issues page](https://github.com/rails/rails/issues) and in 3 months we'll evalu= ate if it is time to release.

## CHANGES since 3.2= .13

*Action Mailer*

No changes.

*Action Pack*

* =C2=A0 Merg= e `:action` from routing scope and assign endpoint if both `:controller`
=C2=A0 =C2=A0 and `:action` are present. The endpoint assignment only = occurs if there is
=C2=A0 =C2=A0 no `:to` present in the options = hash so should only affect routes using the
=C2=A0 =C2=A0 shortha= nd syntax (i.e. endpoint is inferred from the the path).

=C2=A0 =C2=A0 Fixes #9856

=C2= =A0 =C2=A0 *Yves Senn*, *Andrew White*

* =C2=A0 Al= ways escape the result of `link_to_unless` method.

=C2=A0 =C2=A0 Before:

=C2=A0 =C2=A0 =C2=A0 =C2=A0 link_to_unless(true, '<b&= gt;Showing</b>', 'github.com')
=C2=A0 =C2=A0 =C2=A0 =C2=A0 # =3D> "<b>Show= ing</b>"

=C2=A0 =C2=A0 After:

=C2=A0 =C2=A0 =C2=A0 =C2= =A0 link_to_unless(true, '<b>Showing</b>', 'github.com')
=C2=A0 =C2=A0 =C2=A0 = =C2=A0 # =3D> "&lt;b&gt;Showing&lt;/b&gt;"

=C2=A0 =C2=A0 *dtaniwaki*

* = =C2=A0 Use a case insensitive URI Regexp for #asset_path.

=C2=A0 =C2=A0 This fix a problem where the same asset path using di= fferent case are generating
=C2=A0 =C2=A0 different URIs.

=C2=A0 =C2=A0 B= efore:

=C2=A0 =C2=A0 =C2=A0 =C2=A0 image_tag("= ;HTTP://google.com")
=C2= =A0 =C2=A0 =C2=A0 =C2=A0 # =3D> "<img alt=3D\"Google\"= src=3D\"/assets/HTTP://google.com\&= quot; />"
=C2=A0 =C2=A0 =C2=A0 =C2=A0 image_tag("http://google.com")
=C2=A0 =C2=A0 =C2=A0 =C2=A0 # = =3D> "<img alt=3D\"Google\" src=3D\"http://google.com\" />"

=C2=A0 =C2=A0 After:

=C2=A0 = =C2=A0 =C2=A0 =C2=A0 image_tag("HTTP://g= oogle.com")
=C2=A0 =C2=A0 =C2=A0 =C2=A0 # =3D> "= <img alt=3D\"Google\" src=3D\"HTTP://google.com\" />"
=C2=A0 =C2=A0 =C2=A0 =C2=A0 image_tag("http://google.com")
=C2=A0 =C2=A0 =C2=A0 =C2=A0 # = =3D> "<img alt=3D\"Google\" src=3D\"http://google.com\" />"

=C2=A0 =C2=A0 *David Celis + Rafael Mendon=C3=A7a Fran= =C3=A7a*

* =C2=A0 Fix explicit names on multiple f= ile fields. If a file field tag has
=C2=A0 =C2=A0 the multiple op= tion, it is turned into an array field (appending `[]`),
=C2=A0 =C2=A0 but if an explicit name is passed to `file_field` the `[= ]` is not
=C2=A0 =C2=A0 appended.
=C2=A0 =C2=A0 Fixes #= 9830.

=C2=A0 =C2=A0 *Ryan McGeary*

<= /div>
* =C2=A0 Fix assets loading performance in 3.2.13.

=C2=A0 =C2=A0 Issue #8756 uses Sprockets for resolving = files that already exist on disk,
=C2=A0 =C2=A0 for those files t= heir extensions don't need to be rewritten.

= =C2=A0 =C2=A0 Fixes #9803.

=C2=A0 =C2=A0 *Fred Wu*

* =C2= =A0 Fix `ActionController#action_missing` not being called.
=C2= =A0 =C2=A0 Fixes #9799.

=C2=A0 =C2=A0 *Janko Luin*=

* =C2=A0 `ActionView::Helpers::NumberHelper#numbe= r_to_human` returns the number unaltered when
=C2=A0 =C2=A0 the units hash does not contain the needed key, e.g. whe= n the number provided is less
=C2=A0 =C2=A0 than the largest key = provided.

=C2=A0 =C2=A0 Examples:

=C2=A0 =C2=A0 =C2=A0 =C2=A0 number_to_human(123, units: {}) =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0# =3D> 123
=C2=A0 =C2=A0 =C2=A0 =C2=A0 number_to_human(123, units: { thousand: &#= 39;k' }) # =3D> 123

=C2=A0 =C2=A0 Fixes #92= 69.
=C2=A0 =C2=A0 Backport #9347.

=C2=A0= =C2=A0 *Michael Hoffman*

* =C2=A0 Include I18n locale fallbacks in view lookup.
=C2=A0 =C2= =A0 Fixes GH#3512.

=C2=A0 =C2=A0 *Juan Barreneche*=

* =C2=A0 Fix `ActionDispatch::Request#formats` wh= en the Accept request-header is an
=C2=A0 =C2=A0 empty string. Fix #7774 [Backport #8977, #9541]

=C2=A0 =C2=A0 *Soylent + Maxime R=C3=A9ty*

<= /div>
*Active Model*

No changes.
*Active Record*

* =C2=A0 Do not re-create destroyed association when sa= ving the parent object.

=C2=A0 =C2=A0 Fixes #11450= .

=C2=A0 =C2=A0 *Paul Nikitochkin*

<= /div>
* =C2=A0 Do not shallow the original exception in `exec_cache` on= PostgreSQL adapter.

=C2=A0 =C2=A0 Fixes #11260.

= =C2=A0 =C2=A0 *Rafael Mendon=C3=A7a Fran=C3=A7a*

*= =C2=A0 Fix `ActiveRecord::Store` incorrectly tracking changes of its attri= butes.
=C2=A0 =C2=A0 Fixes #10373.

=C2=A0 =C2=A0 *Janko Marohni=C4=87*

* =C2=A0 Fix a bug that prevented the use of the default STI inherita= nce column
=C2=A0 =C2=A0 (ActiveRecord::Base.inheritance_column = =3D 'some_column'.)

=C2=A0 =C2=A0 *chapmajs + Takehiro Adachi*
* =C2=A0 Fix mysql2 adapter raises the correct exception when = executing a query on a
=C2=A0 =C2=A0 closed connection.

=C2=A0 =C2=A0 *Yves Senn*

* =C2=A0 Fixes bug where `Company.new.contract_ids` wou= ld incorrectly load
=C2=A0 =C2=A0 all non-associated contracts.

=C2=A0 =C2=A0 Example:

=C2= =A0 =C2=A0 =C2=A0 =C2=A0 company =3D Company.new # Company has many :contra= cts

=C2=A0 =C2=A0 =C2=A0 =C2=A0 # before
=C2=A0 = =C2=A0 =C2=A0 =C2=A0 company.contract_ids # =3D> SELECT ... WHERE `contr= acts`.`company_id` IS NULL

=C2=A0 =C2=A0 =C2=A0 = =C2=A0 # after
=C2=A0 =C2=A0 =C2=A0 =C2=A0 company.contract_ids #= =3D> []

=C2=A0 =C2=A0 *Jared Armstrong*

* =C2=A0 Fix the `:primary_key` option for `has_many` associations.
=
=C2=A0 =C2=A0 Fixes #10693.

=C2=A0 =C2=A0 *Yv= es Senn*

* =C2=A0 fixes bug introduced by #3329. =C2=A0Now, when autosaving associat= ions,
=C2=A0 =C2=A0 deletions happen before inserts and saves. = =C2=A0This prevents a 'duplicate
=C2=A0 =C2=A0 unique value&#= 39; database error that would occur if a record being created had
=C2=A0 =C2=A0 the same value on a unique indexed field as that of a re= cord being destroyed.

=C2=A0 =C2=A0 Backport of #1= 0417

=C2=A0 =C2=A0 *Johnny Holton*

<= /div>
* =C2=A0 Fix that under some conditions, Active Record could prod= uce invalid SQL of the sort:
=C2=A0 =C2=A0 "SELECT DISTINCT DISTINCT".

=C2=A0 =C2=A0 Backport of #6792.

=C2=A0 =C2= =A0 *Ben Woosley*

* =C2=A0 Require `ActiveRecord::= Base` in railtie hooks for rake_tasks, console and runner to
=C2=A0 =C2=A0 avoid circular constant loading issues.

=C2=A0 =C2=A0 Backport #7695.

=C2=A0 =C2= =A0 Fixes #7683 and #882

=C2=A0 =C2=A0 *Ben Holley= *

* =C2=A0 Maintain context for joins within Activ= eRecord::Relation merges.
=C2=A0 =C2=A0 Backport #10164.

=C2=A0 =C2=A0 = *Neeraj Singh + Andrew Horner*

* =C2=A0 Make sure = the `EXPLAIN` command is never triggered by a `select_db` call.
<= br>
=C2=A0 =C2=A0 *Daniel Schierbeck*

* =C2=A0 Revert changes on `pluck` that was ignoring th= e select clause when the relation already
=C2=A0 =C2=A0 has one. = This caused a regression since it changed the behavior in a stable release.=

=C2=A0 =C2=A0 Fixes #9777.

=C2=A0 = =C2=A0 *Rafael Mendon=C3=A7a Fran=C3=A7a*

* =C2=A0= Confirm a record has not already been destroyed before decrementing counte= r cache.

=C2=A0 =C2=A0 *Ben Tucker*

* =C2=A0 Default values= for PostgreSQL bigint types now get parsed and dumped to the
=C2= =A0 =C2=A0 schema correctly.
=C2=A0 =C2=A0 Backport #10098.
=

=C2=A0 =C2=A0 *Erik Peterson*

* =C2=A0 Removed warning when `auto_explain_threshold_i= n_seconds` is set and the
=C2=A0 =C2=A0 connection adapter doesn&= #39;t support explain.
=C2=A0 =C2=A0 This is causing a regression= since the Active Record Railtie is trying to
=C2=A0 =C2=A0 connect to the development database in the application b= oot.

=C2=A0 =C2=A0 *Rafael Mendon=C3=A7a Fran=C3= =A7a*

* =C2=A0 Do not reset `inheritance_column` w= hen it's set explicitly.
=C2=A0 =C2=A0 Backport of #5327.

=C2=A0 =C2= =A0 *kennyj + Fred Wu*

* =C2=A0 Fix a problem wron= g exception is occured
=C2=A0 =C2=A0 when raising no translatable= exception in PostgreSQL.

=C2=A0 =C2=A0 *kennyj*

* =C2=A0 Res= ets the postgres search path in the structure.sql after the structure
=
=C2=A0 =C2=A0 is dumped in order to find schema_migrations table when = multiples schemas
=C2=A0 =C2=A0 are used.
=C2=A0 =C2=A0 Fixes #9796.

=C2=A0 =C2=A0 *Juan M. Cuello + Dembskiy Alexander*

* =C2=A0 Reload the association target if it's stale.= `@stale_state` should be nil
=C2=A0 =C2=A0 when a model isn't saved.
=C2=A0 =C2=A0 Fi= xes #7526.

=C2=A0 =C2=A0 *Larry Lv*

=
* =C2=A0 Don't read CSV files during execution of `db:fixtur= es:load`. CSV support for
=C2=A0 =C2=A0 fixtures was removed some time ago but the task was stil= l loading them, even
=C2=A0 =C2=A0 though later the code was look= ing for the related yaml file instead.

=C2=A0 =C2= =A0 *kennyj*

*Active Resource*

* =C2=A0 Fixes an iss= ue that ActiveResource models ignores ActiveResource::Base.include_root_in_= json.
=C2=A0 =C2=A0 Backported from the now separate repo rails/a= ctiveresouce.

=C2=A0 =C2=A0 *Xinjiang Lu*

*A= ctive Support*

* =C2=A0 Make `Time.at_with_coercio= n` retain the second fraction and return local time.

=C2=A0 =C2=A0 Fixes #11350

=C2=A0 =C2=A0 *Neer Friedman*, *Andrew White*

* =C2=A0 Fix `ActiveSupport::TaggedLogging` incorrectly pro= viding program name the same as log message
=C2=A0 =C2=A0 even wh= en block is not provided.

=C2=A0 =C2=A0 *Carson Reinke*

= * =C2=A0 Override `Time.at` to support the passing of Time-like values when= called with a single argument.

=C2=A0 =C2=A0 *And= rew White*

* =C2=A0 Revert the changes on unicode character encoding fr= om `ActiveSupport::JSON.encode`.
=C2=A0 =C2=A0 This was causing a= regression where the resulting string is always returning UTF-8.
=C2=A0 =C2=A0 Also it changes the behavior of this method on a stable rele= ase.
=C2=A0 =C2=A0 Fixes #9498.

=C2=A0 =C2=A0 *Raf= ael Mendon=C3=A7a Fran=C3=A7a*

* =C2=A0 Fix `Activ= eSupport::TimeZone.parse` when time is at a local DST jump.
=C2= =A0 =C2=A0 Fixes #9678.

=C2=A0 =C2=A0 *Andrew White*

*Railties*
=

* =C2=A0 Fix bugs that crashed `rake test:benchmark`, `= rails profiler` and
=C2=A0 =C2=A0 `rails benchmarker`.
= =C2=A0 =C2=A0 Fixes #4938.
=C2=A0 =C2=A0 Backport rails/rails-perftest#2.

=C2=A0 =C2=A0 *Dmitry Vorotilin + Yves Senn*

* = =C2=A0 Add support for runner hook.

=C2=A0 =C2=A0 = Backport #7695.

=C2=A0 =C2=A0 *Ben Holley*

* =C2=A0 Fixes bug= with scaffold generator with `--assets=3Dfalse --resource-route=3Dfalse`.<= /div>
=C2=A0 =C2=A0 Fixes #9525.

=C2=A0 =C2=A0= *Arun Agrawal*

*Full listing*

To see the full list of change= s, [check out all the commits on GitHub](https://github.com/rails/rails/compare/v= 3.2.13...v3.2.14).

## SHA-1

If you'd like to = verify that your gem is the same as the one I've uploaded, please use t= hese SHA-1 hashes:

* dd2333744644870efcd149e3adf3c= 3b6934ec6ed =C2=A0actionmailer-3.2.14.gem
* efcfc238115f7db57650dbab348d0b5192f98770 =C2=A0actionpack-3.2.14.gem=
* d72fadd29e10e2ead9fb0d7371bed5a7fb32c044 =C2=A0activemodel-3.2= .14.gem
* af7585f9a58d5e643d6e332daede4a0b8ee1de7a =C2=A0activere= cord-3.2.14.gem
* 188924273139cea07032254987d748aee45f5800 =C2=A0activeresource-3.2.14= .gem
* e221938399c9cb040ef9285f52b18bfa3e59b10a =C2=A0activesuppo= rt-3.2.14.gem
* a5d44cf4c65798e925d998f416804cd23c914001 =C2=A0ra= ils-3.2.14.gem
* 4e99050427fb47ff515051e78eedf328c9ec5676 =C2=A0railties-3.2.14.gem

I'd like to thank you all, every contributor wh= o helped with this release, especially everyone who tried the release candi= dates.

--047d7b10c86fa4a82804e234a026--