diff options
Diffstat (limited to 'activesupport/CHANGELOG.md')
-rw-r--r-- | activesupport/CHANGELOG.md | 63 |
1 files changed, 39 insertions, 24 deletions
diff --git a/activesupport/CHANGELOG.md b/activesupport/CHANGELOG.md index bc8d11a297..8f328335b2 100644 --- a/activesupport/CHANGELOG.md +++ b/activesupport/CHANGELOG.md @@ -1,3 +1,18 @@ +* Added method `#eql?` to `ActiveSupport::Duration`, in addition to `#==`. + + Currently, the following returns `false`, contrary to expectation: + + 1.minute.eql?(1.minute) + + Adding method `#eql?` will make this behave like expected. Method `#eql?` is + just a bit stricter than `#==`, as it checks whether the argument is also a duration. Their + parts may be different though. + + 1.minute.eql?(60.seconds) # => true + 1.minute.eql?(60) # => false + + *Joost Lubach* + * Time#change can now change nanoseconds (:nsec) as a higher-precision alternative to microseconds (:usec). @@ -9,7 +24,7 @@ *Kostiantyn Kahanskyi* * Introduced new configuration option `active_support.test_order` for - specifying the order test cases are executed. This option currently defaults + specifying the order in which test cases are executed. This option currently defaults to `:sorted` but will be changed to `:random` in Rails 5.0. *Akira Matsuda*, *Godfrey Chan* @@ -32,7 +47,7 @@ *Peter Jaros* * `determine_constant_from_test_name` does no longer shadow `NameError`s - which happen during constant autoloading. + which happens during constant autoloading. Fixes #9933. @@ -110,8 +125,8 @@ * Always instrument `ActiveSupport::Cache`. - Since `ActiveSupport::Notifications` only instrument items when there - are subscriber we don't need to disable instrumentation. + Since `ActiveSupport::Notifications` only instruments items when there + are attached subscribers, we don't need to disable instrumentation. *Peter Wagenet* @@ -134,17 +149,17 @@ `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 + 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 + 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 + # => 86399.999999999 *Gordon Chan* @@ -153,12 +168,12 @@ Before: ActiveSupport::NumberHelper.number_to_rounded Rational(1000, 3), precision: 2 - #=> "330.00" + # => "330.00" After: ActiveSupport::NumberHelper.number_to_rounded Rational(1000, 3), precision: 2 - #=> "333.33" + # => "333.33" See #15379. @@ -240,9 +255,9 @@ *Xavier Noria* -* Fixed backward compatibility isues introduced in 326e652. +* Fixed backward compatibility issues introduced in 326e652. - Empty Hash or Array should not present in serialization result. + Empty Hash or Array should not be present in serialization result. {a: []}.to_query # => "" {a: {}}.to_query # => "" @@ -261,20 +276,20 @@ This fixes the current situation of: - 1.second.eql?(1.second) #=> false + 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.eql?(1.0) # => false + 1.0.eql?(1) # => false - 1.second.eql?(1) #=> false (was true) - 1.eql?(1.second) #=> 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.0 => "bar" } { 1 => "foo", 1.second => "bar" } # now => { 1 => "foo", 1.second => "bar" } @@ -282,11 +297,11 @@ And though the behavior of these hasn't changed, for reference: - 1 == 1.0 #=> true - 1.0 == 1 #=> true + 1 == 1.0 # => true + 1.0 == 1 # => true - 1 == 1.second #=> true - 1.second == 1 #=> true + 1 == 1.second # => true + 1.second == 1 # => true *Emily Dobervich* @@ -296,8 +311,8 @@ *Pavel Pravosud* -* `HashWithIndifferentAccess` better respects `#to_hash` on objects it's - given. In particular, `.new`, `#update`, `#merge`, `#replace` all accept +* `HashWithIndifferentAccess` better respects `#to_hash` on objects it + recieves. In particular, `.new`, `#update`, `#merge`, `#replace` all accept objects which respond to `#to_hash`, even if those objects are not Hashes directly. |