diff options
Diffstat (limited to 'lib/gitlab/markdown_cache/redis/extension.rb')
-rw-r--r-- | lib/gitlab/markdown_cache/redis/extension.rb | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/lib/gitlab/markdown_cache/redis/extension.rb b/lib/gitlab/markdown_cache/redis/extension.rb index af3237f4ba6..add71fa120e 100644 --- a/lib/gitlab/markdown_cache/redis/extension.rb +++ b/lib/gitlab/markdown_cache/redis/extension.rb @@ -22,16 +22,32 @@ module Gitlab end end - private + prepended do + def self.preload_markdown_cache!(objects) + fields = Gitlab::MarkdownCache::Redis::Store.bulk_read(objects) - def save_markdown(updates) - markdown_store.save(updates) + objects.each do |object| + fields[object.cache_key].value.each do |field_name, value| + object.write_markdown_field(field_name, value) + end + end + end end def write_markdown_field(field_name, value) + # The value read from redis is a string, so we're converting it back + # to an int. + value = value.to_i if field_name == :cached_markdown_version + instance_variable_set("@#{field_name}", value) end + private + + def save_markdown(updates) + markdown_store.save(updates) + end + def markdown_field_changed?(field_name) false end |