| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| | |
do not override fetch on local cache
|
| |
| |
| |
| |
| |
| | |
fetch is supposed to behave differently, this was a mistake merged in
https://github.com/rails/rails/pull/22194
|
|\ \
| |/
|/| |
Return a sized Enumerator from Hash#transform_values{!}
|
| | |
|
|\ \
| | |
| | | |
call local_cache 1 time instead of 3 times
|
| | |
| | |
| | |
| | |
| | | |
LocalCache read_entry previously called the local_cache method 3 times,
now it only calls it once and keeps the result in a local variable.
|
|/ /
| |
| |
| |
| | |
extending an instance with a module puts the methods on top of it,
prepend does the same but on the class level, so less work for us and more standard way of doing things
|
|\ \
| | |
| | | |
cache nil replies from backend cache so misses are fast too
|
| | | |
|
| | | |
|
|\ \ \
| | | |
| | | | |
Update docs/comments to use setup/teardown blocks vs. methods. [ci skip]
|
| | | |
| | | |
| | | |
| | | | |
* Remove super for setup block. Not needed.
|
| | | |
| | | |
| | | |
| | | | |
As discussed in the minitest-spec-rails issue (http://git.io/vlHxx) Rails uses setup/teardown callbacks. Defining `setup` or `teardown` methods vs. blocks will yield inconsistent behavior in the callback chain.
|
|/ / /
| | |
| | |
| | |
| | |
| | | |
When a frame is an eval block without filename argument there is no
absolute_path so the previous implementation would fail because `nil`
doesn't responds to `start_with?`.
|
|\ \ \ |
|
| | | | |
|
| | | |
| | | |
| | | | |
It improves readability of docs
|
| | | | |
|
| | | |
| | | |
| | | |
| | | | |
https://github.com/rails/rails/commit/e768c519fb6015e00961702a5165c6dab548a954 bang version produces `KeyError` [ci skip]
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This reverts commit efbd62f0c5c927a08e860b318b7bb561b2602a98.
Right now Eastern Time zone is on daylight saving, so the output in the
documentation is different but this doesn't mean that it is wrong.
Daylight savings only happen in 3 months in a year so it is better to
use the normal time zone in the documentation.
|
| | | | |
|
| | | | |
|
| | | | |
|
|\ \ \ \
| | | | |
| | | | | |
When testing cache issues, it is useful to log the actual key, including namespace
|
| | | | |
| | | | |
| | | | |
| | | | | |
full key that actually used by the underline cache implementation
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The stated value of `now` would actually give the same result for
`now - 24.hours` and `now - 1.day`. Use an alternative value for
`now` that demonstrates the difference between subtracting
`24.hours` and `1.day`.
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | | |
This method was already niche, and is now redundant with `.new`
|
|\ \ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
`HashWithIndifferentAccess.new` respects the default value or proc on
objects that respond to `#to_hash`
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
objects that respond to `#to_hash`.
Builds on the work of #12550 where `.new` will convert the object (that respond to `#to_hash`) to a hash and
add that hash's keys and values to itself.
This change will also make `.new` respect the default value or proc of objects that respond to `#to_hash`.
In other words, this `.new` behaves exactly like `.new_from_hash_copying_default`.
`.new_from_hash_copying_default` now simply invokes `.new` and any references to `.new_from_hash_copying_default`
are replaced with `.new`.
Added tests confirm behavior.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Before this commit `Module#redefine_method` always changes
visibility of redefined method to `public`.
This commit changes behavior of Module#redefine_method` to
keep method visibility.
|
| | | | | | |
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
In later code examples, it is better to write how `Module#anonymous?`
works.
|
| | | | | | |
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
This is primarily to fix method redefinition warnings in class_attribute
but may be of use in other places where we define singleton methods.
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
FileStore: Long cache keys may result in too long paths due to encoding
|
| | | | | | | |
|
|\ \ \ \ \ \ \
| | | | | | | |
| | | | | | | |
| | | | | | | | |
Handle invalid UTF-8 strings when HTML escaping
|
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
Use `ActiveSupport::Multibyte::Unicode.tidy_bytes` to handle invalid UTF-8
strings in `ERB::Util.unwrapped_html_escape` and `ERB::Util.html_escape_once`.
Prevents user-entered input passed from a querystring into a form field from
causing invalid byte sequence errors.
|
|\ \ \ \ \ \ \ \
| | | | | | | | |
| | | | | | | | | |
Use Module.prepend instead of alias_method and unify behavior of all Numeric extensions
|
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | | |
alias_method
|
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | | |
Given that this pull request affects a mutable value, we need to test
for and document the affects on the receiver in this case.
Additionally, this pull request was missing a CHANGELOG entry.
|
| | | | | | | | | |
|
|\ \ \ \ \ \ \ \ \
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | | |
Round some numbers more humanely
|
| | | | | | | | | | |
|
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | | |
Fix #20869
|
|\ \ \ \ \ \ \ \ \ \
| | | | | | | | | | |
| | | | | | | | | | | |
ActiveSupport: Fixing issue when delegating to methods named "block", "args", or "arg"
|
| | | | | | | | | | | |
|
|\ \ \ \ \ \ \ \ \ \ \
| | | | | | | | | | | |
| | | | | | | | | | | | |
Fix precision on cache_key
|
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | | |
The default timestamp used for AR is `updated_at` in nanoseconds! (:nsec) This causes issues on any machine that runs an OS that supports nanoseconds timestamps, i.e. not-OS X, where the cache_key of the record persisted in the database (milliseconds precision) is out-of-sync with the cache_key in the ruby VM.
This commit adds:
A test that shows the issue, it can be found in the separate file `cache_key_test.rb`, because
- model couldn't be defined inline
- transactional testing needed to be turned off to get it to pass the MySQL tests
This seemed cleaner than putting it in an existing testcase file.
It adds :usec as a dateformat that calculates datetime in microseconds
It sets precision of cache_key to :usec instead of :nsec, as no db supports nsec precision on timestamps
|