Class: GollumRails::Adapters::Gollum::Page
- Inherits:
-
Object
- Object
- GollumRails::Adapters::Gollum::Page
- Defined in:
- lib/gollum_rails/adapters/gollum/page.rb
Overview
Main page class for the Gollum connector.
It provides some awesome features for connecting gollum to gollum_rails such as:
* new_page
* find_page
* delete_page
* rename_page
* move_page
* first_page_commit
* page_creation time
* ...
Class Method Summary collapse
-
.find_page(name, wiki, version = nil) ⇒ Object
finds all versions of a page.
-
.parse_path(name) ⇒ Object
Parses a given filepath e.g.
Instance Method Summary collapse
-
#update_page(page, wiki, content = nil, commit = {}, name = nil, format = nil) ⇒ Object
Updates an existing page.
Class Method Details
.find_page(name, wiki, version = nil) ⇒ Object
finds all versions of a page
name - the pagename to search wiki - instance of Gollum::Wiki version - optional - The pages version
Returns the Gollum::Page class
47 48 49 50 51 |
# File 'lib/gollum_rails/adapters/gollum/page.rb', line 47 def find_page(name, wiki, version=nil) wiki.clear_cache path_data = parse_path(name) wiki.paged(path_data[:name], path_data[:path], exact = true, version) end |
.parse_path(name) ⇒ Object
Parses a given filepath e.g. ‘/test/page’
Name is page path is /test
Returns a Hash
28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/gollum_rails/adapters/gollum/page.rb', line 28 def parse_path(name) path = '/' name = name.to_s if name.include?('/') name = name[1..-1] if name[0] == "/" content = name.split('/') name = content.pop path = '/'+content.join('/') end { path: path, name: name } end |
Instance Method Details
#update_page(page, wiki, content = nil, commit = {}, name = nil, format = nil) ⇒ Object
Updates an existing page
page - An instance of Gollum::Page wiki - An instance of Gollum::Wiki content - New content commit - Commit Hash name - A new String (optional) format - A filetype as symbol (optional)
Returns the page
65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/gollum_rails/adapters/gollum/page.rb', line 65 def update_page( page, wiki, content=nil, commit={}, name=nil, format=nil) wiki.clear_cache return page if page.nil? name ||= page.name format = (format || page.format).to_sym content ||= page.raw_data wiki.update_page(page,name,format,content.to_s,commit) unless ((!content||page.raw_data == content) && page.format == format) self.class.find_page( mixin(page.url_path, name), wiki ) end |