class SakaiInfo::WikiPage

Attributes

dbrow[R]

Public Class Methods

all_serializations() click to toggle source
# File lib/sakai-info/wiki.rb, line 216
def self.all_serializations
  [
   :default,
   :permissions,
   :content,
   :history,
  ]
end
clear_cache() click to toggle source
# File lib/sakai-info/wiki.rb, line 16
def self.clear_cache
  @@cache = {}
end
find(id) click to toggle source
# File lib/sakai-info/wiki.rb, line 27
def self.find(id)
  if @@cache[id].nil?
    row = DB.connect[:rwikiobject].filter(:id => id).first
    if row.nil?
      raise ObjectNotFoundException.new(WikiPage, id)
    end
    @@cache[id] = WikiPage.new(row)
  end
  @@cache[id]
end
new(dbrow) click to toggle source
# File lib/sakai-info/wiki.rb, line 21
def initialize(dbrow)
  @dbrow = dbrow

  @id = dbrow[:id]
end

Public Instance Methods

content() click to toggle source
# File lib/sakai-info/wiki.rb, line 138
def content
  @content ||= DB.connect[:rwikicurrentcontent].where(:rwikiid => self.id).first[:content].read
end
content_serialization() click to toggle source
# File lib/sakai-info/wiki.rb, line 210
def content_serialization
  {
    "content" => self.content,
  }
end
default_serialization() click to toggle source

serialization

# File lib/sakai-info/wiki.rb, line 147
def default_serialization
  result = {
    "id" => self.id,
    "page_name" => self.page_name,
    "realm" => self.realm.serialize(:summary),
    "owner" => self.owner.eid,
    "last_updated_by" => self.last_updated_by.eid,
    "last_updated" => self.last_updated,
    "site" => self.site.serialize(:summary),
    "permissions" => self.permission_string,
    "revision" => self.revision,
  }
  result
end
group_admin?() click to toggle source
# File lib/sakai-info/wiki.rb, line 114
def group_admin?
  @dbrow[:groupadmin] == 1
end
group_readable?() click to toggle source
# File lib/sakai-info/wiki.rb, line 106
def group_readable?
  @dbrow[:groupread] == 1
end
group_writable?() click to toggle source
# File lib/sakai-info/wiki.rb, line 110
def group_writable?
  @dbrow[:groupwrite] == 1
end
history() click to toggle source
# File lib/sakai-info/wiki.rb, line 142
def history
  @history ||= WikiPageHistory.find_by_wiki_page_id(self.id)
end
history_serialization() click to toggle source
# File lib/sakai-info/wiki.rb, line 200
def history_serialization
  result = {
    "history" => self.history.collect { |r| r.serialize(:history) },
  }
  if result["history"] == []
    result = {}
  end
  result
end
history_summary_serialization() click to toggle source
# File lib/sakai-info/wiki.rb, line 171
def history_summary_serialization
  {
    "id" => self.id,
    "last_updated" => self.last_updated,
    "last_updated_by" => self.last_updated_by.eid,
  }
end
last_updated() click to toggle source
# File lib/sakai-info/wiki.rb, line 38
def last_updated
  @dbrow[:version]
end
last_updated_by() click to toggle source
# File lib/sakai-info/wiki.rb, line 50
def last_updated_by
  @updated_by ||= User.find!(@dbrow[:userid])
end
owner() click to toggle source
# File lib/sakai-info/wiki.rb, line 46
def owner
  @owner ||= User.find!(@dbrow[:owner])
end
owner_admin?() click to toggle source
# File lib/sakai-info/wiki.rb, line 102
def owner_admin?
  @dbrow[:owneradmin] == 1
end
owner_readable?() click to toggle source
# File lib/sakai-info/wiki.rb, line 94
def owner_readable?
  @dbrow[:ownerread] == 1
end
owner_writable?() click to toggle source
# File lib/sakai-info/wiki.rb, line 98
def owner_writable?
  @dbrow[:ownerwrite] == 1
end
page_name() click to toggle source
# File lib/sakai-info/wiki.rb, line 84
def page_name
  @page_name ||= if not self.realm_name.nil?
                   if @dbrow[:name] =~ /^#{self.realm_name}\/(.+)$/
                     $1
                   else
                     @dbrow[:name]
                   end
                 end
end
permission_string() click to toggle source
# File lib/sakai-info/wiki.rb, line 126
def permission_string
  (self.owner_readable? ? "r" : "-") +
    (self.owner_writable? ? "w" : "-") +
    (self.owner_admin? ? "A" : "-") +
    (self.group_readable? ? "r" : "-") +
    (self.group_writable? ? "w" : "-") +
    (self.group_admin? ? "A" : "-") +
    (self.public_readable? ? "r" : "-") +
    (self.public_writable? ? "w" : "-") +
    "-"
end
permissions_serialization() click to toggle source
# File lib/sakai-info/wiki.rb, line 179
def permissions_serialization
  {
    "permissions" => {
      "owner" => {
        "read" => self.owner_readable?,
        "write" => self.owner_writable?,
        "admin" => self.owner_admin?,
      },
      "group" => {
        "read" => self.group_readable?,
        "write" => self.group_writable?,
        "admin" => self.group_admin?,
      },
      "public" => {
        "read" => self.public_readable?,
        "write" => self.public_writable?,
      }
    }
  }
end
public_readable?() click to toggle source
# File lib/sakai-info/wiki.rb, line 118
def public_readable?
  @dbrow[:publicread] == 1
end
public_writable?() click to toggle source
# File lib/sakai-info/wiki.rb, line 122
def public_writable?
  @dbrow[:publicwrite] == 1
end
realm() click to toggle source
# File lib/sakai-info/wiki.rb, line 54
def realm
  if not self.realm_name.nil?
    @realm ||= AuthzRealm.find!(self.realm_name)
  end
end
realm_name() click to toggle source
# File lib/sakai-info/wiki.rb, line 60
def realm_name
  @dbrow[:realm]
end
revision() click to toggle source
# File lib/sakai-info/wiki.rb, line 42
def revision
  @dbrow[:revision]
end
site() click to toggle source
# File lib/sakai-info/wiki.rb, line 76
def site
  @site ||= if not self.site_id.nil?
              Site.find!(self.site_id)
            else
              nil
            end
end
site_id() click to toggle source
# File lib/sakai-info/wiki.rb, line 64
def site_id
  @site_id ||= if not self.realm_name.nil?
                 if self.realm_name =~ /^\/site\/([^\/]+)/
                   $1
                 else
                   nil
                 end
               else
                 nil
               end
end
summary_serialization() click to toggle source
# File lib/sakai-info/wiki.rb, line 162
def summary_serialization
  {
    "id" => self.id,
    "name" => self.name,
    "owner" => self.owner.eid,
    "site_id" => self.site_id,
  }
end