Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Branch: rf-experiment-…
Fetching contributors…

Cannot retrieve contributors at this time

138 lines (89 sloc) 3.64 KB
  • 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.

    For more info 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.


    '_id'.humanize # => ""


    '_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
      class_methods do
        def authenticate(credentials)
          # ...
      def generate_private_key
        # ...
    # app/models/user.rb
    class User < ActiveRecord::Base
      include Authentication

    Jeremy Kemper

Please check 4-1-stable for previous changes.

Jump to Line
Something went wrong with that request. Please try again.