このコミットが含まれているのは:
2026-10-04 15:24:27 +09:00
コミット 93e2f48355
4個のファイルの変更、179行の追加、159行の削除
+23 -3
ファイルの表示
@@ -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