2018-11-09 13:39:43 -05:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2017-10-03 12:58:33 -04:00
|
|
|
module Gitlab
|
|
|
|
module Git
|
|
|
|
class WikiPage
|
2020-07-22 14:09:27 -04:00
|
|
|
attr_reader :url_path, :title, :format, :path, :version, :raw_data, :name, :historical, :formatted_data
|
2017-10-03 12:58:33 -04:00
|
|
|
|
2022-09-08 02:13:33 -04:00
|
|
|
class << self
|
|
|
|
# Abstracts away Gitlab::GitalyClient::WikiPage
|
|
|
|
def from_gitaly_wiki_page(gitaly_page, version)
|
|
|
|
new(
|
|
|
|
url_path: gitaly_page.url_path,
|
|
|
|
title: gitaly_page.title,
|
|
|
|
format: gitaly_page.format,
|
|
|
|
path: gitaly_page.path,
|
|
|
|
raw_data: gitaly_page.raw_data,
|
|
|
|
name: gitaly_page.name,
|
|
|
|
historical: gitaly_page.historical?,
|
|
|
|
version: version
|
|
|
|
)
|
|
|
|
end
|
|
|
|
end
|
2017-10-03 12:58:33 -04:00
|
|
|
|
2022-09-08 02:13:33 -04:00
|
|
|
def initialize(hash)
|
|
|
|
@url_path = hash[:url_path]
|
|
|
|
@title = hash[:title]
|
|
|
|
@format = hash[:format]
|
|
|
|
@path = hash[:path]
|
|
|
|
@raw_data = hash[:raw_data]
|
|
|
|
@name = hash[:name]
|
|
|
|
@historical = hash[:historical]
|
|
|
|
@version = hash[:version]
|
2017-10-03 12:58:33 -04:00
|
|
|
end
|
|
|
|
|
|
|
|
def historical?
|
|
|
|
@historical
|
|
|
|
end
|
|
|
|
|
|
|
|
def text_data
|
|
|
|
return @text_data if defined?(@text_data)
|
|
|
|
|
|
|
|
@text_data = @raw_data && Gitlab::EncodingHelper.encode!(@raw_data.dup)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|