Per request digest caches were added before we had hooks into
different units of work that Rails performs.
As such the most reliable way to prevent stale cache digests
was with a middleware. The middleware prevented staleness in
Action Controller requests.
However, the executor is superior because it should also prevent
staleness when running just Active Job jobs or broadcasting
through Action Cable's server.
This causes, other AV initializers after it to be called after all of AC initializers, which get pulled in before since action_controller.set_configs gets called.
Hence, push initializer depending on after hook, to be called after all initializers for this railtie are done.
We don't need no stinking `on_load` where we're going! Because
people far wiser than me (@rafaelfranca and @jeremy) know that
passing `:after` means the lib is already loaded.
As the tasks are related to cache_digests and
as they are already namespaced under cache_digests,
renaming to cache_digests.rake makes it to know
where to find these tasks.
`I18n.translate` helper will wrap the missing translation keys
in a <span> tag only if `debug_missing_translation` configuration has
a truthy value. Default value is `true`. For example in `application.rb`:
# in order to turn off missing key wrapping
config.action_view.debug_missing_translation = false
Avoid computing the same fragment digest many times when looping over templates.
The cache is cleared on every request so template changes are still picked up.
Makes caching a collection of template partials faster using `read_multi`
on the Rails cache store.
Some caching implementations have optimized `read_multi` so we don't have
to check in the cache store for every template.