41 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Ruby
		
	
	
	
| module Gitlab
 | |
|   module Git
 | |
|     class WikiPage
 | |
|       attr_reader :url_path, :title, :format, :path, :version, :raw_data, :name, :text_data, :historical, :formatted_data
 | |
| 
 | |
|       # This class is meant to be serializable so that it can be constructed
 | |
|       # by Gitaly and sent over the network to GitLab.
 | |
|       #
 | |
|       # Because Gollum::Page is not serializable we must get all the data from
 | |
|       # 'gollum_page' during initialization, and NOT store it in an instance
 | |
|       # variable.
 | |
|       #
 | |
|       # Note that 'version' is a WikiPageVersion instance which it itself
 | |
|       # serializable. That means it's OK to store 'version' in an instance
 | |
|       # variable.
 | |
|       def initialize(gollum_page, version)
 | |
|         @url_path = gollum_page.url_path
 | |
|         @title = gollum_page.title
 | |
|         @format = gollum_page.format
 | |
|         @path = gollum_page.path
 | |
|         @raw_data = gollum_page.raw_data
 | |
|         @name = gollum_page.name
 | |
|         @historical = gollum_page.historical?
 | |
|         @formatted_data = gollum_page.formatted_data if gollum_page.is_a?(Gollum::Page)
 | |
| 
 | |
|         @version = version
 | |
|       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
 |