class CommonCartridge::Parsers::Parser
Public Class Methods
new(zipfile)
click to toggle source
# File lib/common_cartridge/parsers/parser.rb, line 27 def initialize(zipfile) @zipfile = zipfile @package = Package.new end
use_file(zipfile, path) { |get_input_stream.read| ... }
click to toggle source
# File lib/common_cartridge/parsers/parser.rb, line 18 def self.use_file(zipfile, path) Zip::File.open(File.join(CommonCartridge.config.import_directory, zipfile)) do |file| f = file.glob(path).first unless f.nil? yield f.get_input_stream.read end end end
Public Instance Methods
parse()
click to toggle source
# File lib/common_cartridge/parsers/parser.rb, line 32 def parse Parser.use_file(@zipfile, 'imsmanifest.xml') do |xml| @package.manifest = ManifestDocument.parse(xml).manifest end parse_content! @package.outcomes = parse_outcomes parse_questions! parse_module_items! @package end
Private Instance Methods
parse_content!()
click to toggle source
# File lib/common_cartridge/parsers/parser.rb, line 57 def parse_content! @package.manifest.resources.map do |resource| parse_resource! resource end end
parse_module_items!()
click to toggle source
# File lib/common_cartridge/parsers/parser.rb, line 45 def parse_module_items! @package.modules.each do |mod| item_parser = Parsers::Items.new(@zipfile, mod, @package.manifest.resources) item_parser.parse! end end
parse_outcomes()
click to toggle source
# File lib/common_cartridge/parsers/parser.rb, line 52 def parse_outcomes outcomes_parser = Parsers::Outcomes.new(@zipfile) outcomes_parser.parse! end
parse_questions!()
click to toggle source
# File lib/common_cartridge/parsers/parser.rb, line 73 def parse_questions! @package.quizzes.each do |quiz| parser = Parsers::Questions.new(@zipfile, quiz) parser.parse! end end
parse_resource!(resource)
click to toggle source
# File lib/common_cartridge/parsers/parser.rb, line 63 def parse_resource! resource file_parser = Parsers::Files.new(@zipfile, resource) file_parser.parse!(@package) dependency_parser = Parsers::Dependencies.new(@zipfile, resource) dependency_parser.parse!(@package) rescue RuntimeError => e Rails.logger.error "CommonCartridge parse error: #{e.to_s}" Rails.logger.error e.backtrace end