このコミットが含まれているのは:
@@ -57,9 +57,6 @@ module Wiki
|
||||
line_shas = lines.map { |line| Digest::SHA256.hexdigest(line) }
|
||||
tree_sha = Digest::SHA256.hexdigest(line_shas.join(','))
|
||||
|
||||
line_id_by_sha = upsert_lines!(lines, line_shas)
|
||||
line_ids = line_shas.map { |sha| line_id_by_sha.fetch(sha) }
|
||||
|
||||
ActiveRecord::Base.transaction do
|
||||
@page.lock!
|
||||
|
||||
@@ -72,6 +69,8 @@ module Wiki
|
||||
end
|
||||
end
|
||||
|
||||
line_id_by_sha = upsert_lines!(lines, line_shas)
|
||||
line_ids = line_shas.map { |sha| line_id_by_sha.fetch(sha) }
|
||||
@page.update!(body: normalised)
|
||||
|
||||
WikiVersionRecorder.record!(
|
||||
@@ -94,6 +93,7 @@ module Wiki
|
||||
{ wiki_revision_id: rev.id, wiki_line_id: line_id, position: pos }
|
||||
end
|
||||
WikiRevisionLine.insert_all!(rows) if rows.any?
|
||||
record_description!(rev, normalised)
|
||||
|
||||
rev
|
||||
end
|
||||
@@ -110,6 +110,26 @@ module Wiki
|
||||
|
||||
private
|
||||
|
||||
def record_description! revision, body
|
||||
tag = @page.tag_name.tag
|
||||
return unless tag && @page.tag_name.language_code == 'ja'
|
||||
|
||||
tag.lock!
|
||||
description = TagDescription.lock.find_by(tag_id: tag.id, language_code: 'ja')
|
||||
version_no = description ? description.version_no + 1 : 1
|
||||
TagDescriptionVersion.create!(
|
||||
id: revision.id, tag_id: tag.id, language_code: 'ja', version_no:,
|
||||
event_type: description ? 'update' : 'create', body:,
|
||||
created_by_user_id: @created_user.id, created_at: revision.created_at)
|
||||
if description
|
||||
description.update!(body:, version_no:, updated_by_user_id: @created_user.id)
|
||||
else
|
||||
TagDescription.create!(
|
||||
id: @page.id, tag_id: tag.id, language_code: 'ja', version_no:, body:,
|
||||
created_by_user_id: @created_user.id, updated_by_user_id: @created_user.id)
|
||||
end
|
||||
end
|
||||
|
||||
def split_lines(body) = body.split("\n")
|
||||
|
||||
def upsert_lines! lines, line_shas
|
||||
|
||||
新しいイシューから参照
ユーザーをブロックする