Class: SakaiInfo::PageProperty

Inherits:
Object
  • Object
show all
Defined in:
lib/sakai-info/page.rb

Class Method Summary collapse

Class Method Details

.find_by_page_id(page_id) ⇒ Object



102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
# File 'lib/sakai-info/page.rb', line 102

def self.find_by_page_id(page_id)
  properties = {}
  # HACK: reading blobs via OCI8 is really slow, make the db server do it!
  #  This is multiple orders of magnitude faster.
  #  But, this will break if the property value is > 4000chars and may not work
  #  on mysql, so here's the original version:
  # DB.connect[:sakai_site_page_property].where(:page_id => page_id).all.each do |row|
  #   properties[row[:name]] = row[:value].read
  # end
  DB.connect[:sakai_site_page_property].
    select(:name, :to_char.sql_function(:value).as(:value)).
    where(:page_id => page_id).all.each do |row|
    properties[row[:name]] = row[:value]
  end
  return properties
end

.get(page_id, property_name) ⇒ Object



92
93
94
95
96
97
98
99
100
# File 'lib/sakai-info/page.rb', line 92

def self.get(page_id, property_name)
  row = DB.connect[:sakai_site_page_property].
    filter(:page_id => page_id, :name => property_name).first
  if row.nil?
    nil
  else
    row[:value].read
  end
end