class CommonCartridge::Package

Attributes

assignments[RW]
manifest[RW]
outcomes[RW]

Public Class Methods

new() click to toggle source
# File lib/common_cartridge/package.rb, line 5
def initialize
  @assignments = []
end

Public Instance Methods

all_outcomes() click to toggle source
# File lib/common_cartridge/package.rb, line 17
def all_outcomes
  @all_outcomes ||= outcome_groups.collect { |g| g.outcomes }.flatten
end
announcements() click to toggle source
# File lib/common_cartridge/package.rb, line 29
def announcements
  @announcements ||= resources_of_type(Elements::Resources::Topic).select { |d| d.is_announcement? }
end
discussions() click to toggle source
# File lib/common_cartridge/package.rb, line 25
def discussions
  @discussions ||= resources_of_type(Elements::Resources::Topic).reject { |d| d.is_announcement? }
end
find_resource(identifier) click to toggle source
# File lib/common_cartridge/package.rb, line 9
def find_resource(identifier)
  manifest.resources.find { |r| r.identifier == identifier }
end
modules() click to toggle source
# File lib/common_cartridge/package.rb, line 21
def modules
  @modules ||= manifest.organization.root_item.items
end
outcome_groups() click to toggle source
# File lib/common_cartridge/package.rb, line 13
def outcome_groups
  @outcome_groups ||= outcomes ? outcomes.outcome_groups : []
end
pages() click to toggle source
# File lib/common_cartridge/package.rb, line 33
def pages
  @pages ||= begin
               pages = resources_of_type(Elements::Resources::Page).each do |page|
                 assign_title(page)
               end
              filter_pages(pages)
            end
end
quizzes() click to toggle source
# File lib/common_cartridge/package.rb, line 43
def quizzes
  @quizzes ||= resources_of_type(Elements::Resources::Assessment).each do |quiz|
                   assign_title(quiz) unless quiz.title
  end
end

Private Instance Methods

all_items() click to toggle source
# File lib/common_cartridge/package.rb, line 73
def all_items
  @all_items ||= begin
                   modules.each_with_object([]) do |mod, memo|
                     memo << mod.items
                     mod.items.each do |item|
                       memo << item.items if item.items
                     end
                   end.flatten
                 end
end
assign_title(obj) click to toggle source
# File lib/common_cartridge/package.rb, line 57
def assign_title(obj)
  if ref = find_item_by_ref(obj.identifier)
    obj.title = ref.title
  end
end
filter_pages(pages) click to toggle source
# File lib/common_cartridge/package.rb, line 51
def filter_pages(pages)
  pages.select do |page|
    (page.href =~ /wiki/ || page.href =~ /html$/) && page.title
  end
end
find_item_by_ref(ref) click to toggle source
# File lib/common_cartridge/package.rb, line 67
def find_item_by_ref(ref)
  all_items.detect do |item|
    item.identifierref == ref
  end
end
resources_of_type(type) click to toggle source
# File lib/common_cartridge/package.rb, line 63
def resources_of_type(type)
  manifest.resources.select { |r| r.type =~ type.pattern }
end