Make banzai module that handles markdown singleton
This commit is contained in:
parent
20a5033d79
commit
f281041fea
1 changed files with 9 additions and 7 deletions
|
@ -1,5 +1,7 @@
|
|||
module Banzai
|
||||
module Renderer
|
||||
extend self
|
||||
|
||||
# Convert a Markdown String into an HTML-safe String of HTML
|
||||
#
|
||||
# Note that while the returned HTML will have been sanitized of dangerous
|
||||
|
@ -14,7 +16,7 @@ module Banzai
|
|||
# context - Hash of context options passed to our HTML Pipeline
|
||||
#
|
||||
# Returns an HTML-safe String
|
||||
def self.render(text, context = {})
|
||||
def render(text, context = {})
|
||||
cache_key = context.delete(:cache_key)
|
||||
cache_key = full_cache_key(cache_key, context[:pipeline])
|
||||
|
||||
|
@ -52,7 +54,7 @@ module Banzai
|
|||
# texts_and_contexts
|
||||
# => [{ text: '### Hello',
|
||||
# context: { cache_key: [note, :note] } }]
|
||||
def self.cache_collection_render(texts_and_contexts)
|
||||
def cache_collection_render(texts_and_contexts)
|
||||
items_collection = texts_and_contexts.each_with_index do |item, index|
|
||||
context = item[:context]
|
||||
cache_key = full_cache_multi_key(context.delete(:cache_key), context[:pipeline])
|
||||
|
@ -81,7 +83,7 @@ module Banzai
|
|||
items_collection.map { |item| item[:rendered] }
|
||||
end
|
||||
|
||||
def self.render_result(text, context = {})
|
||||
def render_result(text, context = {})
|
||||
text = Pipeline[:pre_process].to_html(text, context) if text
|
||||
|
||||
Pipeline[context[:pipeline]].call(text, context)
|
||||
|
@ -100,7 +102,7 @@ module Banzai
|
|||
# :user - User object
|
||||
#
|
||||
# Returns an HTML-safe String
|
||||
def self.post_process(html, context)
|
||||
def post_process(html, context)
|
||||
context = Pipeline[context[:pipeline]].transform_context(context)
|
||||
|
||||
pipeline = Pipeline[:post_process]
|
||||
|
@ -113,7 +115,7 @@ module Banzai
|
|||
|
||||
private
|
||||
|
||||
def self.cacheless_render(text, context = {})
|
||||
def cacheless_render(text, context = {})
|
||||
Gitlab::Metrics.measure(:banzai_cacheless_render) do
|
||||
result = render_result(text, context)
|
||||
|
||||
|
@ -126,7 +128,7 @@ module Banzai
|
|||
end
|
||||
end
|
||||
|
||||
def self.full_cache_key(cache_key, pipeline_name)
|
||||
def full_cache_key(cache_key, pipeline_name)
|
||||
return unless cache_key
|
||||
["banzai", *cache_key, pipeline_name || :full]
|
||||
end
|
||||
|
@ -134,7 +136,7 @@ module Banzai
|
|||
# To map Rails.cache.read_multi results we need to know the Rails.cache.expanded_key.
|
||||
# Other option will be to generate stringified keys on our side and don't delegate to Rails.cache.expanded_key
|
||||
# method.
|
||||
def self.full_cache_multi_key(cache_key, pipeline_name)
|
||||
def full_cache_multi_key(cache_key, pipeline_name)
|
||||
return unless cache_key
|
||||
Rails.cache.send(:expanded_key, full_cache_key(cache_key, pipeline_name))
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue