## Rails 3.2.15 (Oct 16, 2013) ##
* Fix ActiveSupport::Cache::FileStore#cleanup to no longer rely on missing each_key method.
*Murray Steele*
* Add respond_to_missing? for TaggedLogging which is best practice when overriding method_missing. This permits
wrapping TaggedLogging by another log abstraction such as em-logger.
*Wolfram Arnold*
## Rails 3.2.14 (Jul 22, 2013) ##
* 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ça França*
* Fix `ActiveSupport::TimeZone.parse` when time is at a local DST jump.
Fixes #9678.
*Andrew White*
## Rails 3.2.13 (Mar 18, 2013) ##
* Fix DateTime comparison with DateTime::Infinity object.
*Dan Kubb*
* Remove surrogate unicode character encoding from ActiveSupport::JSON.encode
The encoding scheme was broken for unicode characters outside the basic
multilingual plane; since json is assumed to be UTF-8, and we already force the
encoding to UTF-8 simply pass through the un-encoded characters.
*Brett Carter*
* Fix mocha v0.13.0 compatibility. *James Mead*
* `#as_json` isolates options when encoding a hash. [Backport #8185]
Fix #8182
*Yves Senn*
* Handle the possible Permission Denied errors atomic.rb might trigger due to
its chown and chmod calls. [Backport #8027]
*Daniele Sluijters*
## Rails 3.2.12 (Feb 11, 2013) ##
* No changes.
## Rails 3.2.11 (Jan 8, 2012) ##
* Hash.from_xml raises when it encounters type="symbol" or type="yaml".
Use Hash.from_trusted_xml to parse this XML.
CVE-2013-0156
*Jeremy Kemper*
## Rails 3.2.10 (Jan 2, 2013) ##
* No changes.
## Rails 3.2.9 (Nov 12, 2012) ##
* Add logger.push_tags and .pop_tags to complement logger.tagged:
class Job
def before
Rails.logger.push_tags :jobs, self.class.name
end
def after
Rails.logger.pop_tags 2
end
end
*Jeremy Kemper*
* Add %:z and %::z format string support to ActiveSupport::TimeWithZone#strftime. [fixes #6962] *kennyj*
## Rails 3.2.8 (Aug 9, 2012) ##
* Fix ActiveSupport integration with Mocha > 0.12.1. *Mike Gunderloy*
* Reverted the deprecation of ActiveSupport::JSON::Variable. *Rafael Mendonça França*
* ERB::Util.html_escape now escapes single quotes. *Santiago Pastorino*
## Rails 3.2.7 (Jul 26, 2012) ##
* Hash#fetch(fetch) is not the same as doing hash[key]
* adds a missing require [fixes #6896]
* make sure the inflection rules are loaded when cherry-picking active_support/core_ext/string/inflections.rb [fixes #6884]
* Merge pull request #6857 from rsutphin/as_core_ext_time_missing_require
* bump AS deprecation_horizon to 4.0
## Rails 3.2.6 (Jun 12, 2012) ##
* No changes.
## Rails 3.2.5 (Jun 1, 2012) ##
* ActiveSupport::JSON::Variable is deprecated. Define your own #as_json and #encode_json methods
for custom JSON string literals. *Erich Menge*
## Rails 3.2.4 (May 31, 2012) ##
* Added #beginning_of_hour and #end_of_hour to Time and DateTime core
extensions. *Mark J. Titorenko*
## Rails 3.2.3 (March 30, 2012) ##
* No changes.
## Rails 3.2.2 (March 1, 2012) ##
* No changes.
## Rails 3.2.1 (January 26, 2012) ##
* Documentation fixes and improvements.
* Update time zone offset information. *Ravil Bayramgalin*
* The deprecated `ActiveSupport::Base64.decode64` calls `::Base64.decode64`
now. *Jonathan Viney*
* Fixes uninitialized constant `ActiveSupport::TaggedLogging::ERROR`. *kennyj*
## Rails 3.2.0 (January 20, 2012) ##
* ActiveSupport::Base64 is deprecated in favor of ::Base64. *Sergey Nartimov*
* Module#synchronize is deprecated with no replacement. Please use `monitor`
from ruby's standard library.
* (Date|DateTime|Time)#beginning_of_week accept an optional argument to
be able to set the day at which weeks are assumed to start.
* Deprecated ActiveSupport::MessageEncryptor#encrypt and decrypt. *José Valim*
* ActiveSupport::Notifications.subscribed provides subscriptions to events while a block runs. *fxn*
* Module#qualified_const_(defined?|get|set) are analogous to the corresponding methods
in the standard API, but accept qualified constant names. *fxn*
* Added inflection #deconstantize which complements #demodulize. This inflection
removes the righmost segment in a qualified constant name. *fxn*
* Added ActiveSupport:TaggedLogging that can wrap any standard Logger class to provide tagging capabilities *DHH*
Logger = ActiveSupport::TaggedLogging.new(Logger.new(STDOUT))
Logger.tagged("BCX") { Logger.info "Stuff" } # Logs "[BCX] Stuff"
Logger.tagged("BCX", "Jason") { Logger.info "Stuff" } # Logs "[BCX] [Jason] Stuff"
Logger.tagged("BCX") { Logger.tagged("Jason") { Logger.info "Stuff" } } # Logs "[BCX] [Jason] Stuff"
* Added safe_constantize that constantizes a string but returns nil instead of an exception if the constant (or part of it) does not exist *Ryan Oblak*
* ActiveSupport::OrderedHash is now marked as extractable when using Array#extract_options! *Prem Sichanugrist*
* Added Array#prepend as an alias for Array#unshift and Array#append as an alias for Array#<< *DHH*
* The definition of blank string for Ruby 1.9 has been extended to Unicode whitespace.
Also, in 1.8 the ideographic space U+3000 is considered to be whitespace. *Akira Matsuda, Damien Mathieu*
* The inflector understands acronyms. *dlee*
* Deprecated ActiveSupport::Memoizable in favor of Ruby memoization pattern *José Valim*
* Added Time#all_day/week/quarter/year as a way of generating ranges (example: Event.where(created_at: Time.now.all_week)) *DHH*
* Added instance_accessor: false as an option to Class#cattr_accessor and friends *DHH*
* Removed ActiveSupport::SecureRandom in favor of SecureRandom from the standard library *Jon Leighton*
* ActiveSupport::OrderedHash now has different behavior for #each and
\#each_pair when given a block accepting its parameters with a splat. *Andrew Radev*
* ActiveSupport::BufferedLogger#silence is deprecated. If you want to squelch
logs for a certain block, change the log level for that block.
* ActiveSupport::BufferedLogger#open_log is deprecated. This method should
not have been public in the first place.
* ActiveSupport::BufferedLogger's behavior of automatically creating the
directory for your log file is deprecated. Please make sure to create the
directory for your log file before instantiating.
* ActiveSupport::BufferedLogger#auto_flushing is deprecated. Either set the
sync level on the underlying file handle like this:
f = File.open('foo.log', 'w')
f.sync = true
ActiveSupport::BufferedLogger.new f
Or tune your filesystem. The FS cache is now what controls flushing.
* ActiveSupport::BufferedLogger#flush is deprecated. Set sync on your
filehandle, or tune your filesystem.
Please check [3-1-stable](https://github.com/rails/rails/blob/3-1-stable/activesupport/CHANGELOG.md) for previous changes.