class SakaiInfo::Alias
Attributes
dbrow[R]
target[R]
Public Class Methods
all_serializations()
click to toggle source
# File lib/sakai-info/alias.rb, line 111 def self.all_serializations [:default, :mod] end
clear_cache()
click to toggle source
# File lib/sakai-info/alias.rb, line 22 def self.clear_cache @@cache = {} end
count_by_site_id(site_id)
click to toggle source
# File lib/sakai-info/alias.rb, line 80 def self.count_by_site_id(site_id) Alias.query_by_site_id(site_id).count end
find(id)
click to toggle source
# File lib/sakai-info/alias.rb, line 60 def self.find(id) if @@cache[id].nil? row = DB.connect[:sakai_alias].filter(:alias_id => id).first if row.nil? raise ObjectNotFoundException.new(Alias, id) end @@cache[id] = Alias.new(row) end @@cache[id] end
find_by_site_id(site_id)
click to toggle source
# File lib/sakai-info/alias.rb, line 75 def self.find_by_site_id(site_id) Alias.query_by_site_id(site_id).all. collect { |row| @@cache[row[:alias_id]] = Alias.new(row) } end
new(dbrow)
click to toggle source
# File lib/sakai-info/alias.rb, line 27 def initialize(dbrow) @dbrow = dbrow @id = dbrow[:alias_id] @target = dbrow[:target] end
query_by_site_id(site_id)
click to toggle source
# File lib/sakai-info/alias.rb, line 71 def self.query_by_site_id(site_id) DB.connect[:sakai_alias].where("target like ?", "%#{site_id}%") end
Public Instance Methods
default_serialization()
click to toggle source
serialization
# File lib/sakai-info/alias.rb, line 89 def default_serialization result = { "id" => self.id, "target" => self.target, "site" => nil, "properties" => self.properties, } if not self.site.nil? result["site"] = self.site.serialize(:summary) else result.delete("site") end result end
properties()
click to toggle source
# File lib/sakai-info/alias.rb, line 84 def properties @properties ||= AliasProperty.find_by_alias_id(self.id) end
site()
click to toggle source
# File lib/sakai-info/alias.rb, line 54 def site if not self.site_id.nil? @site ||= Site.find(self.site_id) end end
site_id()
click to toggle source
target types
/mailarchive/channel/<site-id>/main /site/<site-id> /announcement/announcement/<site-id> -> rss feed
# File lib/sakai-info/alias.rb, line 38 def site_id if @target.nil? nil else if @target =~ /^\/site\/(.+)$/ $1 elsif @target =~ /^\/mailarchive\/channel\/(.+)\/main$/ $1 elsif @target =~ /^\/announcement\/announcement\/(.+)$/ $1 else nil end end end
summary_serialization()
click to toggle source
# File lib/sakai-info/alias.rb, line 104 def summary_serialization { "id" => self.id, "target" => self.target, } end