The previous implementation of BacktraceSilencer#noise did not work correctly if more than one silencer was configured -- specifically, it would only return noise which was matched by all silencers. The new implementation is such that anything that has been matched by silencers is removed from the backtrace using Array#- (array difference), ie. we now return all elements within a backtrace that have been matched by any silencer (and are thus removed by #silence). Fixes #11030.
2.3 KiB
-
Fix return value from
BacktraceCleaner#noise
when the cleaner is configured with multiple silencers.Fixes #11030
Mark J. Titorenko
-
HashWithIndifferentAccess#select
now returns aHashWithIndifferentAccess
instance instead of aHash
instance.Fixes #10723
Albert Llop
-
Add
DateTime#usec
andDateTime#nsec
so thatActiveSupport::TimeWithZone
keeps sub-second resolution when wrapping aDateTime
value.Fixes #10855
Andrew White
-
Fix
ActiveSupport::Dependencies::Loadable#load_dependency
calling#blame_file!
on Exceptions that do not have the Blamable mixinAndrew Kreiling
-
Override
Time.at
to support the passing of Time-like values when called with a single argument.Andrew White
-
Prevent side effects to hashes inside arrays when
Hash#with_indifferent_access
is called.Fixes #10526
Yves Senn
-
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
-
Replace
multi_json
withjson
.Since Rails requires Ruby 1.9 and since Ruby 1.9 includes
json
in the standard library,multi_json
is no longer necessary.Erik Michaels-Ober
-
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.
Mario Caropreso + Viktor Kelemen + zackham
-
Fix skipping object callbacks using metadata fetched via callback chain inspection methods (
_*_callbacks
)Sean Walbran
-
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
Please check 4-0-stable for previous changes.