CHANGELOG.md 4.6 KB
Newer Older
1 2 3 4
*   Add Time#to_s(:iso8601) for easy conversion of times to the iso8601 format for easy Javascript date parsing.

    *DHH*

5 6 7 8 9 10 11 12 13 14 15 16 17
*   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*

18 19 20 21 22 23
*   Only raise `Module::DelegationError` if it's the source of the exception.

    Fixes #10559

    *Andrew White*

24
*   Make `Time.at_with_coercion` retain the second fraction and return local time.
25 26 27 28 29

    Fixes #11350

    *Neer Friedman*, *Andrew White*

30 31 32 33 34
*   Make `HashWithIndifferentAccess#select` always return the hash, even when
    `Hash#select!` returns `nil`, to allow further chaining.

    *Marc Schütz*

35 36 37 38
*   Remove deprecated `String#encoding_aware?` core extensions (`core_ext/string/encoding`).

    *Arun Agrawal*

39 40 41 42
*   Remove deprecated `Module#local_constant_names` in favor of `Module#local_constants`.

    *Arun Agrawal*

43 44 45 46
*   Remove deprecated `DateTime.local_offset` in favor of `DateTime.civil_from_fromat`.

    *Arun Agrawal*

47 48 49 50
*   Remove deprecated `Logger` core extensions (`core_ext/logger.rb`).

    *Carlos Antonio da Silva*

51 52 53 54 55
*   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*

56 57 58 59 60 61 62
*   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*

63
*   Remove deprecated `Date#to_time_in_current_zone` in favor of `Date#in_time_zone`.
64 65 66

    *Vipul A M*

67 68 69 70
*   Remove deprecated `Proc#bind` with no replacement.

    *Carlos Antonio da Silva*

71 72 73 74 75
*   Remove deprecated `Array#uniq_by` and `Array#uniq_by!`, use native
    `Array#uniq` and `Array#uniq!` instead.

    *Carlos Antonio da Silva*

76 77 78 79
*   Remove deprecated `ActiveSupport::BasicObject`, use `ActiveSupport::ProxyObject` instead.

    *Carlos Antonio da Silva*

Y
Yves Senn 已提交
80 81 82 83
*   Remove deprecated `BufferedLogger`.

    *Yves Senn*

84 85 86 87
*   Remove deprecated `assert_present` and `assert_blank` methods.

    *Yves Senn*

88 89 90 91 92 93 94
*   Fix return value from `BacktraceCleaner#noise` when the cleaner is configured
    with multiple silencers.

    Fixes #11030

    *Mark J. Titorenko*

95
*   `HashWithIndifferentAccess#select` now returns a `HashWithIndifferentAccess`
96 97 98 99 100 101
    instance instead of a `Hash` instance.

    Fixes #10723

    *Albert Llop*

102 103
*   Add `DateTime#usec` and `DateTime#nsec` so that `ActiveSupport::TimeWithZone` keeps
    sub-second resolution when wrapping a `DateTime` value.
104

105 106 107 108
    Fixes #10855

    *Andrew White*

109 110 111 112 113
*   Fix `ActiveSupport::Dependencies::Loadable#load_dependency` calling
    `#blame_file!` on Exceptions that do not have the Blamable mixin

    *Andrew Kreiling*

114 115 116 117
*   Override `Time.at` to support the passing of Time-like values when called with a single argument.

    *Andrew White*

118 119
*   Prevent side effects to hashes inside arrays when
    `Hash#with_indifferent_access` is called.
120

121 122 123 124
    Fixes #10526

    *Yves Senn*

125 126 127 128 129 130
*   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*

131 132
*   Replace `multi_json` with `json`.

133
    Since Rails requires Ruby 1.9 and since Ruby 1.9 includes `json` in the standard library,
134 135 136 137
    `multi_json` is no longer necessary.

    *Erik Michaels-Ober*

138 139 140 141
*   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.

142
    *Mario Caropreso + Viktor Kelemen + zackham*
143

144 145 146 147 148
*   Fix skipping object callbacks using metadata fetched via callback chain
    inspection methods (`_*_callbacks`)

    *Sean Walbran*

149 150 151 152 153 154 155 156 157 158 159 160 161
*   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 已提交
162

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