2017-06-11 15:48:58 -04:00
|
|
|
* Default `ActiveSupport::MessageEncryptor` to use AES 256 GCM encryption.
|
|
|
|
|
|
|
|
On for new Rails 5.2 apps. Upgrading apps can find the config as a new
|
|
|
|
framework default.
|
|
|
|
|
|
|
|
*Assain Jaleel*
|
|
|
|
|
2017-06-06 19:39:20 -04:00
|
|
|
* Cache: `write_multi`
|
|
|
|
|
|
|
|
Rails.cache.write_multi foo: 'bar', baz: 'qux'
|
|
|
|
|
|
|
|
Plus faster fetch_multi with stores that implement `write_multi_entries`.
|
|
|
|
Keys that aren't found may be written to the cache store in one shot
|
|
|
|
instead of separate writes.
|
|
|
|
|
|
|
|
The default implementation simply calls `write_entry` for each entry.
|
|
|
|
Stores may override if they're capable of one-shot bulk writes, like
|
|
|
|
Redis `MSET`.
|
|
|
|
|
|
|
|
*Jeremy Daer*
|
|
|
|
|
2017-05-30 09:16:19 -04:00
|
|
|
* Add default option to module and class attribute accessors.
|
|
|
|
|
2017-06-05 23:03:37 -04:00
|
|
|
mattr_accessor :settings, default: {}
|
2017-05-30 09:16:19 -04:00
|
|
|
|
|
|
|
Works for `mattr_reader`, `mattr_writer`, `cattr_accessor`, `cattr_reader`,
|
|
|
|
and `cattr_writer` as well.
|
|
|
|
|
|
|
|
*Genadi Samokovarov*
|
|
|
|
|
2017-05-30 07:13:29 -04:00
|
|
|
* Add `Date#prev_occurring` and `Date#next_occurring` to return specified next/previous occurring day of week.
|
|
|
|
|
|
|
|
*Shota Iguchi*
|
|
|
|
|
2017-06-05 23:03:37 -04:00
|
|
|
* Add default option to `class_attribute`.
|
|
|
|
|
|
|
|
Before:
|
2017-05-29 12:01:50 -04:00
|
|
|
|
2017-05-29 19:46:01 -04:00
|
|
|
class_attribute :settings
|
|
|
|
self.settings = {}
|
2017-05-29 12:01:50 -04:00
|
|
|
|
|
|
|
Now:
|
|
|
|
|
2017-05-29 19:46:01 -04:00
|
|
|
class_attribute :settings, default: {}
|
2017-05-29 12:01:50 -04:00
|
|
|
|
|
|
|
*DHH*
|
|
|
|
|
2017-05-28 09:23:42 -04:00
|
|
|
* `#singularize` and `#pluralize` now respect uncountables for the specified locale.
|
2017-05-09 17:50:47 -04:00
|
|
|
|
|
|
|
*Eilis Hamilton*
|
|
|
|
|
2017-05-29 19:44:39 -04:00
|
|
|
* Add `ActiveSupport::CurrentAttributes` to provide a thread-isolated attributes singleton.
|
2017-05-26 14:00:27 -04:00
|
|
|
Primary use case is keeping all the per-request attributes easily available to the whole system.
|
2017-05-29 19:46:01 -04:00
|
|
|
|
2017-05-26 14:00:27 -04:00
|
|
|
*DHH*
|
|
|
|
|
Fix implicit calculations with scalars and durations
Previously calculations where the scalar is first would be converted
to a duration of seconds but this causes issues with dates being
converted to times, e.g:
Time.zone = "Beijing" # => Asia/Shanghai
date = Date.civil(2017, 5, 20) # => Mon, 20 May 2017
2 * 1.day # => 172800 seconds
date + 2 * 1.day # => Mon, 22 May 2017 00:00:00 CST +08:00
Now the `ActiveSupport::Duration::Scalar` calculation methods will try
to maintain the part structure of the duration where possible, e.g:
Time.zone = "Beijing" # => Asia/Shanghai
date = Date.civil(2017, 5, 20) # => Mon, 20 May 2017
2 * 1.day # => 2 days
date + 2 * 1.day # => Mon, 22 May 2017
Fixes #29160, #28970.
2017-05-20 11:33:09 -04:00
|
|
|
* Fix implicit coercion calculations with scalars and durations
|
|
|
|
|
|
|
|
Previously calculations where the scalar is first would be converted to a duration
|
|
|
|
of seconds but this causes issues with dates being converted to times, e.g:
|
|
|
|
|
|
|
|
Time.zone = "Beijing" # => Asia/Shanghai
|
|
|
|
date = Date.civil(2017, 5, 20) # => Mon, 20 May 2017
|
|
|
|
2 * 1.day # => 172800 seconds
|
|
|
|
date + 2 * 1.day # => Mon, 22 May 2017 00:00:00 CST +08:00
|
|
|
|
|
|
|
|
Now the `ActiveSupport::Duration::Scalar` calculation methods will try to maintain
|
|
|
|
the part structure of the duration where possible, e.g:
|
|
|
|
|
|
|
|
Time.zone = "Beijing" # => Asia/Shanghai
|
|
|
|
date = Date.civil(2017, 5, 20) # => Mon, 20 May 2017
|
|
|
|
2 * 1.day # => 2 days
|
|
|
|
date + 2 * 1.day # => Mon, 22 May 2017
|
|
|
|
|
|
|
|
Fixes #29160, #28970.
|
|
|
|
|
|
|
|
*Andrew White*
|
|
|
|
|
2017-05-18 12:12:32 -04:00
|
|
|
* Add support for versioned cache entries. This enables the cache stores to recycle cache keys, greatly saving
|
2017-05-18 19:28:15 -04:00
|
|
|
on storage in cases with frequent churn. Works together with the separation of `#cache_key` and `#cache_version`
|
2017-05-18 12:12:32 -04:00
|
|
|
in Active Record and its use in Action Pack's fragment caching.
|
|
|
|
|
|
|
|
*DHH*
|
|
|
|
|
2017-04-19 14:50:25 -04:00
|
|
|
* Pass gem name and deprecation horizon to deprecation notifications.
|
|
|
|
|
|
|
|
*Willem van Bergen*
|
|
|
|
|
2017-04-14 13:04:13 -04:00
|
|
|
* Add support for `:offset` and `:zone` to `ActiveSupport::TimeWithZone#change`
|
|
|
|
|
|
|
|
*Andrew White*
|
|
|
|
|
|
|
|
* Add support for `:offset` to `Time#change`
|
|
|
|
|
|
|
|
Fixes #28723.
|
|
|
|
|
|
|
|
*Andrew White*
|
|
|
|
|
2017-04-09 20:50:13 -04:00
|
|
|
* Add `fetch_values` for `HashWithIndifferentAccess`
|
|
|
|
|
|
|
|
The method was originally added to `Hash` in Ruby 2.3.0.
|
|
|
|
|
|
|
|
*Josh Pencheon*
|
|
|
|
|
2017-04-29 13:41:44 -04:00
|
|
|
|
2017-04-11 18:52:02 -04:00
|
|
|
Please check [5-1-stable](https://github.com/rails/rails/blob/5-1-stable/activesupport/CHANGELOG.md) for previous changes.
|