class Moodle2CC::Moodle2::Parsers::FolderParser
Constants
- FOLDER_MODULE_NAME
- FOLDER_XML
Public Class Methods
new(backup_dir)
click to toggle source
# File lib/moodle2cc/moodle2/parsers/folder_parser.rb, line 8 def initialize(backup_dir) @backup_dir = backup_dir end
Public Instance Methods
parse()
click to toggle source
# File lib/moodle2cc/moodle2/parsers/folder_parser.rb, line 12 def parse activity_dirs = activity_directories(@backup_dir, FOLDER_MODULE_NAME) activity_dirs.map { |dir| parse_folder(dir) } end
Private Instance Methods
parse_files(dir)
click to toggle source
# File lib/moodle2cc/moodle2/parsers/folder_parser.rb, line 41 def parse_files(dir) files = [] File.open(File.join(@backup_dir, dir, FILES_XML)) do |f| xml = Nokogiri::XML(f) xml.search('/inforef/fileref/file').each do |node| files << parse_text(node, 'id') end end files end
parse_folder(dir)
click to toggle source
# File lib/moodle2cc/moodle2/parsers/folder_parser.rb, line 19 def parse_folder(dir) folder = Moodle2CC::Moodle2::Models::Folder.new activity_dir = File.join(@backup_dir, dir) File.open(File.join(activity_dir, FOLDER_XML)) do |f| xml = Nokogiri::XML(f) folder.module_id = xml.at_xpath('/activity/@moduleid').value folder.id = xml.at_xpath('/activity/folder/@id').value folder.name = parse_text(xml, '/activity/folder/name') folder.intro = parse_text(xml, '/activity/folder/intro') folder.intro_format = parse_text(xml, '/activity/folder/introformat') folder.revision = parse_text(xml, '/activity/folder/revision') #xml.search('/activity/book/chapters/chapter').each do |node| # book.chapters << parse_chapter(node) #end end parse_module(activity_dir, folder) folder.file_ids += parse_files(dir) folder end