class Confluence::Page
Exposes a vaguely ActiveRecord-like interface for dealing with Confluence::Pages in Confluence
.
Constants
- DEFAULT_SPACE
Public Class Methods
find_by_name(name, space = DEFAULT_SPACE)
click to toggle source
class methods ###########################################################
# File lib/confluence/page.rb, line 102 def self.find_by_name(name, space = DEFAULT_SPACE) find_by_title(name, space) end
find_by_title(title, space = DEFAULT_SPACE)
click to toggle source
# File lib/confluence/page.rb, line 106 def self.find_by_title(title, space = DEFAULT_SPACE) begin r = confluence.getPage(space, title) rescue Confluence::RemoteException => e # FIXME: dangerous to be checking based on error string like this... if e.message =~ /does not exist/ return nil else raise e end end self.new(r) end
new(data_object = nil)
click to toggle source
Calls superclass method
Confluence::RemoteDataObject::new
# File lib/confluence/page.rb, line 25 def initialize(data_object = nil) super #self.creator = self.confluence_user unless self.include? :creator end
Protected Class Methods
metadata_accessor(accessor, metadata_key)
click to toggle source
# File lib/confluence/page.rb, line 124 def self.metadata_accessor(accessor, metadata_key) f = <<-END def #{accessor.to_s} self.metadata['#{metadata_key}'] end def #{accessor.to_s}=(val) self.metadata['#{metadata_key}'] = val.gsub("\n", " ") end END module_eval f end
Public Instance Methods
before_save()
click to toggle source
callbacks ###############################################################
# File lib/confluence/page.rb, line 94 def before_save raise "Cannot save this page because it has no title and/or space." unless self.title and self.space end
content=(new_content)
click to toggle source
Calls superclass method
# File lib/confluence/page.rb, line 38 def content=(new_content) # make sure metadata doesn't get overwritten old_metadata = self.metadata.entries if self.content super self.metadata.merge! old_metadata if old_metadata end
edit_group()
click to toggle source
# File lib/confluence/page.rb, line 66 def edit_group perm = get_permissions return nil if perm.nil? or perm.empty? perm.each do |p| return p['lockedBy'] if p['lockType'] == 'Edit' end return nil end
edit_group=(group)
click to toggle source
# File lib/confluence/page.rb, line 62 def edit_group=(group) encore.setPageEditGroup(self.title, group) end
get_permissions()
click to toggle source
# File lib/confluence/page.rb, line 88 def get_permissions confluence.getPagePermissions(self.id.to_s) end
load_from_object(data_object)
click to toggle source
Calls superclass method
Confluence::RemoteDataObject#load_from_object
# File lib/confluence/page.rb, line 45 def load_from_object(data_object) super self.modifier = self.confluence_username unless self.attributes.include? :modifier end
metadata()
click to toggle source
# File lib/confluence/page.rb, line 50 def metadata Confluence::Metadata.new(self) end
name()
click to toggle source
# File lib/confluence/page.rb, line 34 def name self.title end
name=(new_name)
click to toggle source
# File lib/confluence/page.rb, line 30 def name=(new_name) self.title = new_name end
parent()
click to toggle source
# File lib/confluence/page.rb, line 54 def parent self.class.find(self.parentId) end
to_s()
click to toggle source
# File lib/confluence/page.rb, line 58 def to_s self.title end
view_group()
click to toggle source
# File lib/confluence/page.rb, line 79 def view_group perm = get_permissions return nil if perm.nil? or perm.empty? perm.each do |p| return p['lockedBy'] if p['lockType'] == 'View' end return nil end
view_group=(group)
click to toggle source
# File lib/confluence/page.rb, line 75 def view_group=(group) encore.setPageViewGroup(self.title, group) end
Protected Instance Methods
reload_newly_created!()
click to toggle source
# File lib/confluence/page.rb, line 136 def reload_newly_created! self.load_from_object(confluence.getPage(self.space, self.title)) end