Class: SakaiInfo::GroupProperty

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

Class Method Summary collapse

Class Method Details

.find_by_group_id(group_id) ⇒ Object



121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
# File 'lib/sakai-info/group.rb', line 121

def self.find_by_group_id(group_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_group_property].where(:group_id => group_id).all.each do |row|
  #   properties[row[:name]] = row[:value].read
  # end
  DB.connect[:sakai_site_group_property].
    select(:name, :to_char.sql_function(:value).as(:value)).
    where(:group_id => group_id).all.each do |row|
    properties[row[:name]] = row[:value]
  end
  return properties
end

.get(group_id, property_name) ⇒ Object



111
112
113
114
115
116
117
118
119
# File 'lib/sakai-info/group.rb', line 111

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