Commit Graph

14 Commits

Author SHA1 Message Date
GitLab Bot 4c083c8163 Add latest changes from gitlab-org/gitlab@master 2022-08-19 15:11:58 +00:00
GitLab Bot 4bf395cded Add latest changes from gitlab-org/gitlab@master 2021-08-03 21:09:39 +00:00
GitLab Bot f397d486bc Add latest changes from gitlab-org/gitlab@master 2021-08-03 15:10:03 +00:00
GitLab Bot 1930898566 Add latest changes from gitlab-org/gitlab@master 2021-08-02 09:10:09 +00:00
GitLab Bot f4d51a9f71 Add latest changes from gitlab-org/gitlab@master 2021-07-29 15:09:48 +00:00
GitLab Bot 936d15143b Add latest changes from gitlab-org/gitlab@master 2021-07-26 21:08:38 +00:00
GitLab Bot 79f98200f8 Add latest changes from gitlab-org/gitlab@master 2021-06-07 15:09:56 +00:00
GitLab Bot 8322f05174 Add latest changes from gitlab-org/gitlab@master 2020-12-04 12:09:39 +00:00
GitLab Bot a4c6555151 Add latest changes from gitlab-org/gitlab@master 2020-07-01 12:09:08 +00:00
Mario de la Ossa e5705f5c54
Banzai - avoid redis if attr is in DB cache
When cache_collection_render runs we end up reading and writing
things to redis even if we already have the rendered field cached
in the DB. This commit avoids using redis at all whenever we have
the field already rendered in the DB cache.
2019-07-10 21:35:43 -06:00
Patrick Bajao ea12c5aae8 Cleanup #attributes method
Since we're prepending the ActiveRecord::Extension module, we
can take advantage of it and avoid using an alias to extend the
original #attributes method.
2019-06-05 20:30:43 +08:00
Patrick Bajao de21320db2 Remove requirement for id for #markdown_cache_key
It's not needed anymore as we require `#cache_key` instead.
2019-06-05 20:06:41 +08:00
Patrick Bajao 56d52340da Use #cache_key of subject for generated redis key
This commit also includes some changes in specs to use
`Class.new` approach.
2019-06-05 14:36:54 +08:00
Patrick Bajao 2eecfd8f9d Use Redis for CacheMarkDownField on non AR models
This allows using `CacheMarkdownField` for models that are not backed
by ActiveRecord.

When the including class inherits `ActiveRecord::Base` we include
`Gitlab::MarkdownCache::ActiveRecord::Extension`. This will cause the
markdown fields to be rendered and the generated HTML stored in a
`<field>_html` attribute on the record. We also store the version
used for generating the markdown.

All other classes that include this model will include the
`Gitlab::MarkdownCache::Redis::Extension`. This add the `<field>_html`
attributes to that model and will generate the html in them. The
generated HTML will be cached in redis under the key
`markdown_cache:<class>:<id>`. The class this included in must
therefore respond to `id`.
2019-06-05 13:19:59 +08:00