diff options
Diffstat (limited to 'activesupport/CHANGELOG.md')
-rw-r--r-- | activesupport/CHANGELOG.md | 153 |
1 files changed, 128 insertions, 25 deletions
diff --git a/activesupport/CHANGELOG.md b/activesupport/CHANGELOG.md index 1982811500..79133c7a40 100644 --- a/activesupport/CHANGELOG.md +++ b/activesupport/CHANGELOG.md @@ -1,39 +1,142 @@ -* Raise an error when multiple `included` blocks are defined for a Concern. - The old behavior would silently discard previously defined blocks, running - only the last one. +* Fixed `ActiveSupport::Subscriber` so that no duplicate subscriber is created + when a subscriber method is redefined. - *Mike Dillon* + *Dennis Schön* -* Replace `multi_json` with `json`. +* Remove deprecated string based terminators for `ActiveSupport::Callbacks`. - Since Rails requires Ruby 1.9 and since Ruby 1.9 includes `json` in the standard library, - `multi_json` is no longer necessary. + *Eileen M. Uchitelle* - *Erik Michaels-Ober* +* Fixed an issue when using + `ActiveSupport::NumberHelper::NumberToDelimitedConverter` to + convert a value that is an `ActiveSupport::SafeBuffer` introduced + in 2da9d67. -* Added escaping of U+2028 and U+2029 inside the json encoder. - These characters are legal in JSON but break the Javascript interpreter. - After escaping them, the JSON is still legal and can be parsed by Javascript. + See #15064. - *Mario Caropreso + Viktor Kelemen + zackham* + *Mark J. Titorenko* -* Fix skipping object callbacks using metadata fetched via callback chain - inspection methods (`_*_callbacks`) +* `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`. - *Sean Walbran* + *Ulysse Carion* -* Add a `fetch_multi` method to the cache stores. The method provides - an easy to use API for fetching multiple values from the cache. +* `humanize` strips leading underscores, if any. - Example: + Before: - # Calculating scores is expensive, so we only do it for posts - # that have been updated. Cache keys are automatically extracted - # from objects that define a #cache_key method. - scores = Rails.cache.fetch_multi(*posts) do |post| - calculate_score(post) + '_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) + # ... + end + end + + def generate_private_key + # ... + end + end + + # app/models/user.rb + class User < ActiveRecord::Base + include Authentication end - *Daniel Schierbeck* + *Jeremy Kemper* -Please check [4-0-stable](https://github.com/rails/rails/blob/4-0-stable/activesupport/CHANGELOG.md) for previous changes. +Please check [4-1-stable](https://github.com/rails/rails/blob/4-1-stable/activesupport/CHANGELOG.md) for previous changes. |