parent
8929255129
commit
0c14c6332d
3 changed files with 28 additions and 18 deletions
|
@ -3,6 +3,7 @@ Please view this file on the master branch, on stable branches it's out of date.
|
||||||
v 8.11.0 (unreleased)
|
v 8.11.0 (unreleased)
|
||||||
- Fix of 'Commits being passed to custom hooks are already reachable when using the UI'
|
- Fix of 'Commits being passed to custom hooks are already reachable when using the UI'
|
||||||
- Limit git rev-list output count to one in forced push check
|
- Limit git rev-list output count to one in forced push check
|
||||||
|
- Retrieve rendered HTML from cache in one request
|
||||||
|
|
||||||
v 8.10.0 (unreleased)
|
v 8.10.0 (unreleased)
|
||||||
- Fix profile activity heatmap to show correct day name (eanplatter)
|
- Fix profile activity heatmap to show correct day name (eanplatter)
|
||||||
|
|
|
@ -2,11 +2,11 @@ module Banzai
|
||||||
# Extract possible GFM references from an arbitrary String for further processing.
|
# Extract possible GFM references from an arbitrary String for further processing.
|
||||||
class ReferenceExtractor
|
class ReferenceExtractor
|
||||||
def initialize
|
def initialize
|
||||||
@texts = []
|
@texts_and_contexts = []
|
||||||
end
|
end
|
||||||
|
|
||||||
def analyze(text, context = {})
|
def analyze(text, context = {})
|
||||||
@texts << Renderer.render(text, context)
|
@texts_and_contexts << { text: text, context: context }
|
||||||
end
|
end
|
||||||
|
|
||||||
def references(type, project, current_user = nil)
|
def references(type, project, current_user = nil)
|
||||||
|
@ -21,9 +21,10 @@ module Banzai
|
||||||
def html_documents
|
def html_documents
|
||||||
# This ensures that we don't memoize anything until we have a number of
|
# This ensures that we don't memoize anything until we have a number of
|
||||||
# text blobs to parse.
|
# text blobs to parse.
|
||||||
return [] if @texts.empty?
|
return [] if @texts_and_contexts.empty?
|
||||||
|
|
||||||
@html_documents ||= @texts.map { |html| Nokogiri::HTML.fragment(html) }
|
@html_documents ||= Renderer.cache_collection_render(@texts_and_contexts)
|
||||||
|
.map { |html| Nokogiri::HTML.fragment(html) }
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -135,22 +135,30 @@ describe Note, models: true do
|
||||||
let!(:note2) { create(:note_on_issue) }
|
let!(:note2) { create(:note_on_issue) }
|
||||||
|
|
||||||
it "reads the rendered note body from the cache" do
|
it "reads the rendered note body from the cache" do
|
||||||
expect(Banzai::Renderer).to receive(:render).
|
expect(Banzai::Renderer).to receive(:cache_collection_render).
|
||||||
with(note1.note,
|
with([{
|
||||||
|
text: note1.note,
|
||||||
|
context: {
|
||||||
pipeline: :note,
|
pipeline: :note,
|
||||||
cache_key: [note1, "note"],
|
cache_key: [note1, "note"],
|
||||||
project: note1.project,
|
project: note1.project,
|
||||||
author: note1.author)
|
author: note1.author
|
||||||
|
}
|
||||||
|
}]).and_call_original
|
||||||
|
|
||||||
expect(Banzai::Renderer).to receive(:render).
|
expect(Banzai::Renderer).to receive(:cache_collection_render).
|
||||||
with(note2.note,
|
with([{
|
||||||
|
text: note2.note,
|
||||||
|
context: {
|
||||||
pipeline: :note,
|
pipeline: :note,
|
||||||
cache_key: [note2, "note"],
|
cache_key: [note2, "note"],
|
||||||
project: note2.project,
|
project: note2.project,
|
||||||
author: note2.author)
|
author: note2.author
|
||||||
|
}
|
||||||
|
}]).and_call_original
|
||||||
|
|
||||||
note1.all_references
|
note1.all_references.users
|
||||||
note2.all_references
|
note2.all_references.users
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue