2014-05-04 17:35:04 -04:00
|
|
|
* Fixed backward compatibility isues introduced in 326e652.
|
2014-05-02 13:57:59 -04:00
|
|
|
|
2014-05-04 17:35:04 -04:00
|
|
|
Empty Hash or Array should not present in serialization result.
|
2014-05-02 13:57:59 -04:00
|
|
|
|
|
|
|
{a: []}.to_query # => ""
|
|
|
|
{a: {}}.to_query # => ""
|
|
|
|
|
|
|
|
For more info see #14948.
|
|
|
|
|
|
|
|
*Bogdan Gusiev*
|
|
|
|
|
2013-08-25 05:22:36 -04:00
|
|
|
* Add `SecureRandom::uuid_v3` and `SecureRandom::uuid_v5` to support stable
|
|
|
|
UUID fixtures on PostgreSQL.
|
|
|
|
|
|
|
|
*Roderick van Domburg*
|
|
|
|
|
2014-04-08 19:24:35 -04:00
|
|
|
* 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*
|
|
|
|
|
2014-03-31 22:33:53 -04:00
|
|
|
* `ActiveSupport::SafeBuffer#prepend` acts like `String#prepend` and modifies
|
|
|
|
instance in-place, returning self. `ActiveSupport::SafeBuffer#prepend!` is
|
|
|
|
deprecated.
|
|
|
|
|
|
|
|
*Pavel Pravosud*
|
|
|
|
|
2013-10-15 15:45:07 -04:00
|
|
|
* `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*
|
|
|
|
|
2014-03-20 08:59:09 -04:00
|
|
|
* Deprecate `Class#superclass_delegating_accessor`, use `Class#class_attribute` instead.
|
|
|
|
|
|
|
|
*Akshay Vishnoi*
|
|
|
|
|
2013-04-20 14:06:22 -04:00
|
|
|
* Ensure classes which `include Enumerable` get `#to_json` in addition to
|
|
|
|
`#as_json`.
|
|
|
|
|
|
|
|
*Sammy Larbi*
|
|
|
|
|
2013-07-17 14:59:15 -04:00
|
|
|
* 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*
|
|
|
|
|
2014-02-23 14:06:18 -05:00
|
|
|
* 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
|
|
|
|
|
|
|
|
*Jeremy Kemper*
|
|
|
|
|
2014-02-25 07:14:35 -05:00
|
|
|
Please check [4-1-stable](https://github.com/rails/rails/blob/4-1-stable/activesupport/CHANGELOG.md) for previous changes.
|