CHANGELOG.md 4.5 KB
Newer Older
1 2 3 4 5 6
*   Only raise `Module::DelegationError` if it's the source of the exception.

    Fixes #10559

    *Andrew White*

7
*   Make `Time.at_with_coercion` retain the second fraction and return local time.
8 9 10 11 12

    Fixes #11350

    *Neer Friedman*, *Andrew White*

13 14 15 16 17
*   Make `HashWithIndifferentAccess#select` always return the hash, even when
    `Hash#select!` returns `nil`, to allow further chaining.

    *Marc Schütz*

18 19 20 21
*   Remove deprecated `String#encoding_aware?` core extensions (`core_ext/string/encoding`).

    *Arun Agrawal*

22 23 24 25
*   Remove deprecated `Module#local_constant_names` in favor of `Module#local_constants`.

    *Arun Agrawal*

26 27 28 29
*   Remove deprecated `DateTime.local_offset` in favor of `DateTime.civil_from_fromat`.

    *Arun Agrawal*

30 31 32 33
*   Remove deprecated `Logger` core extensions (`core_ext/logger.rb`).

    *Carlos Antonio da Silva*

34 35 36 37 38
*   Remove deprecated `Time#time_with_datetime_fallback`, `Time#utc_time`
    and `Time#local_time` in favor of `Time#utc` and `Time#local`.

    *Vipul A M*

39 40 41 42 43 44 45
*   Remove deprecated `Hash#diff` with no replacement.

    If you're using it to compare hashes for the purpose of testing, please use
    MiniTest's `assert_equal` instead.

    *Carlos Antonio da Silva*

46
*   Remove deprecated `Date#to_time_in_current_zone` in favor of `Date#in_time_zone`.
47 48 49

    *Vipul A M*

50 51 52 53
*   Remove deprecated `Proc#bind` with no replacement.

    *Carlos Antonio da Silva*

54 55 56 57 58
*   Remove deprecated `Array#uniq_by` and `Array#uniq_by!`, use native
    `Array#uniq` and `Array#uniq!` instead.

    *Carlos Antonio da Silva*

59 60 61 62
*   Remove deprecated `ActiveSupport::BasicObject`, use `ActiveSupport::ProxyObject` instead.

    *Carlos Antonio da Silva*

Y
Yves Senn 已提交
63 64 65 66
*   Remove deprecated `BufferedLogger`.

    *Yves Senn*

67 68 69 70
*   Remove deprecated `assert_present` and `assert_blank` methods.

    *Yves Senn*

71 72 73 74 75 76 77
*   Fix return value from `BacktraceCleaner#noise` when the cleaner is configured
    with multiple silencers.

    Fixes #11030

    *Mark J. Titorenko*

78
*   `HashWithIndifferentAccess#select` now returns a `HashWithIndifferentAccess`
79 80 81 82 83 84
    instance instead of a `Hash` instance.

    Fixes #10723

    *Albert Llop*

85 86
*   Add `DateTime#usec` and `DateTime#nsec` so that `ActiveSupport::TimeWithZone` keeps
    sub-second resolution when wrapping a `DateTime` value.
87

88 89 90 91
    Fixes #10855

    *Andrew White*

92 93 94 95 96
*   Fix `ActiveSupport::Dependencies::Loadable#load_dependency` calling
    `#blame_file!` on Exceptions that do not have the Blamable mixin

    *Andrew Kreiling*

97 98 99 100
*   Override `Time.at` to support the passing of Time-like values when called with a single argument.

    *Andrew White*

101 102
*   Prevent side effects to hashes inside arrays when
    `Hash#with_indifferent_access` is called.
103

104 105 106 107
    Fixes #10526

    *Yves Senn*

108 109 110 111 112 113
*   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.

    *Mike Dillon*

114 115
*   Replace `multi_json` with `json`.

116
    Since Rails requires Ruby 1.9 and since Ruby 1.9 includes `json` in the standard library,
117 118 119 120
    `multi_json` is no longer necessary.

    *Erik Michaels-Ober*

121 122 123 124
*   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.

125
    *Mario Caropreso + Viktor Kelemen + zackham*
126

127 128 129 130 131
*   Fix skipping object callbacks using metadata fetched via callback chain
    inspection methods (`_*_callbacks`)

    *Sean Walbran*

132 133 134 135 136 137 138 139 140 141 142 143 144
*   Add a `fetch_multi` method to the cache stores. The method provides
    an easy to use API for fetching multiple values from the cache.

    Example:

        # 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)
        end

    *Daniel Schierbeck*
R
Rafael Mendonça França 已提交
145

146 147 148 149 150 151 152 153 154 155 156 157 158
*   Improve `ActiveSupport::Cache::MemoryStore` cache size calculation.
    The memory used by a key/entry pair is calculated via `#cached_size`:

        def cached_size(key, entry)
          key.to_s.bytesize + entry.size + PER_ENTRY_OVERHEAD
        end

    The value of `PER_ENTRY_OVERHEAD` is 240 bytes based on an [empirical
    estimation](https://gist.github.com/ssimeonov/6047200) for 64-bit MRI on 
    1.9.3 and 2.0. GH#11512

    *Simeon Simeonov*

159
Please check [4-0-stable](https://github.com/rails/rails/blob/4-0-stable/activesupport/CHANGELOG.md) for previous changes.