diff options
Diffstat (limited to 'activesupport/CHANGELOG.md')
-rw-r--r-- | activesupport/CHANGELOG.md | 231 |
1 files changed, 22 insertions, 209 deletions
diff --git a/activesupport/CHANGELOG.md b/activesupport/CHANGELOG.md index 5962dd255c..709e497a6d 100644 --- a/activesupport/CHANGELOG.md +++ b/activesupport/CHANGELOG.md @@ -1,218 +1,31 @@ -* Fixed `ActiveSupport::Cache::FileStore` exploding with long paths. - *Adam Panzer / Michael Grosser* +* Add support for error dispatcher classes in `ActiveSupport::Rescuable`. + Now it acts closer to Ruby's rescue. -* Fixed `ActiveSupport::TimeWithZone#-` so precision is not unnecessarily lost - when working with objects with a nanosecond component. - - `ActiveSupport::TimeWithZone#-` should return the same result as if we were - using `Time#-`: - - Time.now.end_of_day - Time.now.beginning_of_day #=> 86399.999999999 - - Before: - - Time.zone.now.end_of_day.nsec #=> 999999999 - Time.zone.now.end_of_day - Time.zone.now.beginning_of_day #=> 86400.0 - - After: - - Time.zone.now.end_of_day - Time.zone.now.beginning_of_day - #=> 86399.999999999 - - *Gordon Chan* - -* Fixed precision error in NumberHelper when using Rationals. - - before: - ActiveSupport::NumberHelper.number_to_rounded Rational(1000, 3), precision: 2 - #=> "330.00" - after: - ActiveSupport::NumberHelper.number_to_rounded Rational(1000, 3), precision: 2 - #=> "333.33" - - See #15379. - - *Juanjo Bazán* - -* Removed deprecated `Numeric#ago` and friends - - Replacements: - - 5.ago => 5.seconds.ago - 5.until => 5.seconds.until - 5.since => 5.seconds.since - 5.from_now => 5.seconds.from_now - - See #12389 for the history and rationale behind this. - - *Godfrey Chan* - -* DateTime `advance` now supports partial days. - - Before: - - DateTime.now.advance(days: 1, hours: 12) - - After: - - DateTime.now.advance(days: 1.5) - - Fixes #12005. - - *Shay Davidson* - -* `Hash#deep_transform_keys` and `Hash#deep_transform_keys!` now transform hashes - in nested arrays. This change also applies to `Hash#deep_stringify_keys`, - `Hash#deep_stringify_keys!`, `Hash#deep_symbolize_keys` and - `Hash#deep_symbolize_keys!`. - - *OZAWA Sakuro* - -* Fixed confusing `DelegationError` in `Module#delegate`. - - See #15186. - - *Vladimir Yarotsky* - -* Fixed `ActiveSupport::Subscriber` so that no duplicate subscriber is created - when a subscriber method is redefined. - - *Dennis Schön* - -* Remove deprecated string based terminators for `ActiveSupport::Callbacks`. - - *Eileen M. Uchitelle* - -* Fixed an issue when using - `ActiveSupport::NumberHelper::NumberToDelimitedConverter` to - convert a value that is an `ActiveSupport::SafeBuffer` introduced - in 2da9d67. - - See #15064. - - *Mark J. Titorenko* - -* `TimeZone#parse` defaults the day of the month to '1' if any other date - components are specified. This is more consistent with the behavior of - `Time#parse`. - - *Ulysse Carion* - -* `humanize` strips leading underscores, if any. - - Before: - - '_id'.humanize # => "" - - After: - - '_id'.humanize # => "Id" - - *Xavier Noria* - -* Fixed backward compatibility isues introduced in 326e652. - - Empty Hash or Array should not present in serialization result. - - {a: []}.to_query # => "" - {a: {}}.to_query # => "" - - For more info see #14948. - - *Bogdan Gusiev* - -* Add `SecureRandom::uuid_v3` and `SecureRandom::uuid_v5` to support stable - UUID fixtures on PostgreSQL. - - *Roderick van Domburg* - -* Fixed `ActiveSupport::Duration#eql?` so that `1.second.eql?(1.second)` is - true. - - This fixes the current situation of: - - 1.second.eql?(1.second) #=> false - - `eql?` also requires that the other object is an `ActiveSupport::Duration`. - This requirement makes `ActiveSupport::Duration`'s behavior consistent with - the behavior of Ruby's numeric types: - - 1.eql?(1.0) #=> false - 1.0.eql?(1) #=> false - - 1.second.eql?(1) #=> false (was true) - 1.eql?(1.second) #=> false - - { 1 => "foo", 1.0 => "bar" } - #=> { 1 => "foo", 1.0 => "bar" } - - { 1 => "foo", 1.second => "bar" } - # now => { 1 => "foo", 1.second => "bar" } - # was => { 1 => "bar" } - - And though the behavior of these hasn't changed, for reference: - - 1 == 1.0 #=> true - 1.0 == 1 #=> true - - 1 == 1.second #=> true - 1.second == 1 #=> true - - *Emily Dobervich* - -* `ActiveSupport::SafeBuffer#prepend` acts like `String#prepend` and modifies - instance in-place, returning self. `ActiveSupport::SafeBuffer#prepend!` is - deprecated. - - *Pavel Pravosud* - -* `HashWithIndifferentAccess` better respects `#to_hash` on objects it's - given. In particular, `.new`, `#update`, `#merge`, `#replace` all accept - objects which respond to `#to_hash`, even if those objects are not Hashes - directly. - - *Peter Jaros* - -* Deprecate `Class#superclass_delegating_accessor`, use `Class#class_attribute` instead. - - *Akshay Vishnoi* - -* Ensure classes which `include Enumerable` get `#to_json` in addition to - `#as_json`. - - *Sammy Larbi* - -* Change the signature of `fetch_multi` to return a hash rather than an - array. This makes it consistent with the output of `read_multi`. - - *Parker Selbert* - -* Introduce `Concern#class_methods` as a sleek alternative to clunky - `module ClassMethods`. Add `Kernel#concern` to define at the toplevel - without chunky `module Foo; extend ActiveSupport::Concern` boilerplate. - - # app/models/concerns/authentication.rb - concern :Authentication do - included do - after_create :generate_private_key - end - - class_methods do - def authenticate(credentials) - # ... + class BaseController < ApplicationController + module ErrorDispatcher + def self.===(other) + Exception === other && other.respond_to?(:status) end end - def generate_private_key - # ... + rescue_from ErrorDispatcher do |error| + render status: error.status, json: { error: error.to_s } end end - # app/models/user.rb - class User < ActiveRecord::Base - include Authentication - end + *Genadi Samokovarov* + +* Add `#verified` and `#valid_message?` methods to `ActiveSupport::MessageVerifier` + + Previously, the only way to decode a message with `ActiveSupport::MessageVerifier` + was to use `#verify`, which would raise an exception on invalid messages. Now + `#verified` can also be used, which returns `nil` on messages that cannot be + decoded. + + Previously, there was no way to check if a message's format was valid without + attempting to decode it. `#valid_message?` is a boolean convenience method that + checks whether the message is valid without actually decoding it. - *Jeremy Kemper* + *Logan Leger* -Please check [4-1-stable](https://github.com/rails/rails/blob/4-1-stable/activesupport/CHANGELOG.md) for previous changes. +Please check [4-2-stable](https://github.com/rails/rails/blob/4-2-stable/activesupport/CHANGELOG.md) for previous changes. |