mirror of
https://gitlab.com/gitlab-org/gitlab-foss.git
synced 2025-07-25 16:03:48 +00:00
32 lines
1.3 KiB
Ruby
32 lines
1.3 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
module Gitlab
|
|
module MarkdownCache
|
|
# Increment this number to invalidate cached HTML from Markdown documents.
|
|
# Even when reverting an MR, we should increment this because we only
|
|
# persist the cache when the new version is higher.
|
|
#
|
|
# Changing this value puts strain on the database, as every row with
|
|
# cached markdown needs to be updated. As a result, avoid changing
|
|
# this if the change to the renderer output is a new feature or a
|
|
# minor bug fix.
|
|
# See: https://gitlab.com/gitlab-org/gitlab/-/issues/330313
|
|
CACHE_COMMONMARK_VERSION = 33
|
|
CACHE_COMMONMARK_VERSION_START = 10
|
|
CACHE_COMMONMARK_VERSION_SHIFTED = CACHE_COMMONMARK_VERSION << 16
|
|
|
|
BaseError = Class.new(StandardError)
|
|
UnsupportedClassError = Class.new(BaseError)
|
|
|
|
# We could be called by a method that is inside the Gitlab::CurrentSettings
|
|
# object. In this case we need to pass in the local_markdown_version in order
|
|
# to avoid an infinite loop. See usaage in `app/models/concerns/cache_markdown_field.rb`
|
|
# Otherwise pass in `nil`
|
|
def self.latest_cached_markdown_version(local_version:)
|
|
local_version ||= Gitlab::CurrentSettings.current_application_settings.local_markdown_version
|
|
|
|
CACHE_COMMONMARK_VERSION_SHIFTED | local_version
|
|
end
|
|
end
|
|
end
|