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
# 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