|
- require 'gollum-lib'
-
-
- class WikiPage < ApplicationRecord
- belongs_to :tag, optional: true
- belongs_to :created_user, class_name: 'User', foreign_key: 'created_user_id'
- belongs_to :updated_user, class_name: 'User', foreign_key: 'updated_user_id'
-
- validates :title, presence: true, length: { maximum: 255 }, uniqueness: true
-
- def body
- page = wiki.page("#{ id }.md")
- page&.raw_data
- end
-
- def set_body content, user:
- page = wiki.page("#{ id }.md")
-
- commit_info = { message: "Update #{ title }",
- name: user.id.to_s,
- email: 'dummy@example.com' }
-
- if page
- page.update(content, commit: commit_info)
- else
- wiki.write_page(id.to_s, :markdown, content, commit_info)
- end
- end
-
- private
-
- WIKI_PATH = Rails.root.join('wiki').to_s
-
- def wiki
- @wiki ||= Gollum::Wiki.new(WIKI_PATH)
- end
- end
|