class SakaiInfo::ContentResource

Attributes

context[R]
dbrow[R]
file_path[R]
resource_type_id[R]
uuid[R]

Public Class Methods

clear_cache() click to toggle source
# File lib/sakai-info/content.rb, line 158
def self.clear_cache
  @@cache = {}
  @@uuid_cache = {}
end
count_by_parent(parent_id) click to toggle source
# File lib/sakai-info/content.rb, line 220
def self.count_by_parent(parent_id)
  ContentResource.query_by_parent(parent_id).count
end
find(id) click to toggle source
# File lib/sakai-info/content.rb, line 179
def self.find(id)
  if @@cache[id].nil?
    row = DB.connect[:content_resource].where(:resource_id => id).first
    if row.nil?
      raise ObjectNotFoundException.new(ContentResource, id)
    end
    @@cache[id] = ContentResource.new(row)
    @@uuid_cache[row[:uuid]] = @@cache[id]
  end
  @@cache[id]
end
find_by_parent(parent_id) click to toggle source
# File lib/sakai-info/content.rb, line 211
def self.find_by_parent(parent_id)
  resources = []
  ContentResource.query_by_parent(parent_id).all.each do |row|
    @@cache[row[:resource_id]] = ContentResource.new(row)
    resources << @@cache[row[:resource_id]]
  end
  resources
end
find_by_uuid(uuid) click to toggle source
# File lib/sakai-info/content.rb, line 191
def self.find_by_uuid(uuid)
  if @@uuid_cache[uuid].nil?
    row = DB.connect[:content_resource].where(:resource_uuid => uuid).first
    if row.nil?
      raise ObjectNotFoundException.new(ContentResource, uuid)
    end
    @@uuid_cache[uuid] = ContentResource.new(row)
    @@cache[row[:resource_id]] = @@uuid_cache[uuid]
  end
  @@uuid_cache[uuid]
end
new(dbrow) click to toggle source
# File lib/sakai-info/content.rb, line 164
def initialize(dbrow)
  @dbrow = dbrow

  @id = @dbrow[:resource_id]
  @parent_id = @dbrow[:in_collection]
  @file_path = @dbrow[:file_path]
  @uuid = @dbrow[:resource_uuid]
  @file_size = @dbrow[:file_size].to_i
  @context = @dbrow[:context]
  @resource_type_id = @dbrow[:resource_type_id]

  @table_name = "content_resource"
  @id_column = "resource_id"
end
query_by_parent(parent_id) click to toggle source
# File lib/sakai-info/content.rb, line 207
def self.query_by_parent(parent_id)
  DB.connect[:content_resource].where(:in_collection => parent_id)
end

Public Instance Methods

default_serialization() click to toggle source
# File lib/sakai-info/content.rb, line 224
def default_serialization
  result = {
    "id" => self.id,
    "uuid" => self.uuid,
    "file_path" => self.file_path,
    "size_on_disk" => self.size_on_disk,
    "context" => self.context,
    "resource_type" => self.resource_type_id,
  }
  if result["uuid"].nil?
    result.delete("uuid")
  end
  if result["context"].nil?
    result.delete("context")
  end
  result
end
detailed_summary_serialization() click to toggle source
# File lib/sakai-info/content.rb, line 249
def detailed_summary_serialization
  {
    "id" => self.id,
    "size" => self.size_on_disk,
    "file_path" => self.file_path,
  }
end
size_on_disk() click to toggle source
# File lib/sakai-info/content.rb, line 203
def size_on_disk
  @file_size
end
summary_serialization() click to toggle source
# File lib/sakai-info/content.rb, line 242
def summary_serialization
  {
    "id" => self.id,
    "size" => self.size_on_disk,
  }
end