diff options
author | Tiago Botelho <tiagonbotelho@hotmail.com> | 2017-08-23 17:53:29 +0100 |
---|---|---|
committer | Tiago Botelho <tiagonbotelho@hotmail.com> | 2017-09-06 15:35:35 +0100 |
commit | 6d8e102c740b75ac9e1d168a84f532f6d9ebaa65 (patch) | |
tree | 803818e401c0f99a54c41776c5b8dec2c38fd9c0 /lib/banzai | |
parent | dd7434e398d26e5f4c92f73dce4bcf9b7e47e193 (diff) | |
download | gitlab-ce-6d8e102c740b75ac9e1d168a84f532f6d9ebaa65.tar.gz |
Adds cacheless render to Banzai object render34509-improves-markdown-rendering-performance-for-commits-list
Diffstat (limited to 'lib/banzai')
-rw-r--r-- | lib/banzai/commit_description_renderer.rb | 7 | ||||
-rw-r--r-- | lib/banzai/commit_renderer.rb | 11 | ||||
-rw-r--r-- | lib/banzai/object_renderer.rb | 2 | ||||
-rw-r--r-- | lib/banzai/renderer.rb | 4 |
4 files changed, 16 insertions, 8 deletions
diff --git a/lib/banzai/commit_description_renderer.rb b/lib/banzai/commit_description_renderer.rb deleted file mode 100644 index 9600ab918a4..00000000000 --- a/lib/banzai/commit_description_renderer.rb +++ /dev/null @@ -1,7 +0,0 @@ -module Banzai - module CommitDescriptionRenderer - def self.render(commit_descriptions, project, user = nil) - ObjectRenderer.new(project, user).render(commit_descriptions, :commit_description) - end - end -end diff --git a/lib/banzai/commit_renderer.rb b/lib/banzai/commit_renderer.rb new file mode 100644 index 00000000000..f5ff95e3eb3 --- /dev/null +++ b/lib/banzai/commit_renderer.rb @@ -0,0 +1,11 @@ +module Banzai + module CommitRenderer + ATTRIBUTES = [:description, :title].freeze + + def self.render(commits, project, user = nil) + obj_renderer = ObjectRenderer.new(project, user) + + ATTRIBUTES.each { |attr| obj_renderer.render(commits, attr) } + end + end +end diff --git a/lib/banzai/object_renderer.rb b/lib/banzai/object_renderer.rb index 2196a92474c..e40556e869c 100644 --- a/lib/banzai/object_renderer.rb +++ b/lib/banzai/object_renderer.rb @@ -38,7 +38,7 @@ module Banzai objects.each_with_index do |object, index| redacted_data = redacted[index] object.__send__("redacted_#{attribute}_html=", redacted_data[:document].to_html.html_safe) # rubocop:disable GitlabSecurity/PublicSend - object.user_visible_reference_count = redacted_data[:visible_reference_count] + object.user_visible_reference_count = redacted_data[:visible_reference_count] if object.respond_to?(:user_visible_reference_count) end end diff --git a/lib/banzai/renderer.rb b/lib/banzai/renderer.rb index 95d82d17658..ceca9296851 100644 --- a/lib/banzai/renderer.rb +++ b/lib/banzai/renderer.rb @@ -36,6 +36,10 @@ module Banzai # The context to use is managed by the object and cannot be changed. # Use #render, passing it the field text, if a custom rendering is needed. def self.render_field(object, field) + unless object.respond_to?(:cached_markdown_fields) + return cacheless_render_field(object, field) + end + object.refresh_markdown_cache!(do_update: update_object?(object)) unless object.cached_html_up_to_date?(field) object.cached_html_for(field) |