| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
If the collection isn't empty any? will loop through it.
Spare the loop and be more concise with what we're asking the
collection about.
|
|
|
|
|
|
| |
`PartialRenderer.render_collection_with/without_template` returns an array
of rendered partials. Avoid dup'ing and shifting it by indexing into
the collection instead.
|
|
|
|
| |
Wasn't pulling its weight for a simple yield anymore.
|
|
|
|
|
|
|
|
| |
Moves us closer to having access to a local template variable,
we can ask for eligibility and its virtual_path.
Currently we rely on `@template`, which we don't have available
when rendering collections without a fixed template.
|
|
|
|
|
|
|
|
|
|
|
| |
A callable cache key writes to the collection cache under a certain namespace.
Which means if we don't have scoped cache key we can just rely on the
`cache model_name do` in the templates to cache them.
Less writes, more sharing.
Add `assert_customer_cached` to better illustrate this in tests, and remove
tests which then don't communicate as much.
|
|
|
|
|
|
| |
`automatic_cache_eligible?ยด is only called if there was no `:cache` key
to fetch in the `@options` via `cache_collection?`. So the check will
always be false.
|
|
|
|
|
|
| |
Written when I didn't understand the internals as well. Action View
generally just refers to `@template` when meaning a fixed template
render. So follow that implicit convention.
|
|
|
|
|
|
| |
We should only support a top level `cache_options`. We also don't
have to default the options to a hash as Active Support's cache
defaults that arg to nil.
|
|
|
|
|
|
|
|
|
| |
Adds the `virtual_path` option to `cache_fragment_name` so it can
be provided when needed.
That allows `cache_collection_render` to get the appropriate cache
key with the digest generated based on the template and prevent
collision with other templates that cache the same collection.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Collections can take advantage of `multi_read` if they render one template
and their partials begin with a cache call.
The cache call must correspond to either what the collections elements are
rendered as, or match the inferred name of the partial.
So with a notifications/_notification.html.erb template like:
```ruby
<% cache notification %>
<%# ... %>
<% end %>
```
A collection would be able to use `multi_read` if rendered like:
```ruby
<%= render @notifications %>
<%= render partial: 'notifications/notification', collection: @notifications, as: :notification %>
```
|
|
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.
|