Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'lib/gitlab/markdown_cache/redis/extension.rb')
-rw-r--r--lib/gitlab/markdown_cache/redis/extension.rb22
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