class Moodle2CC::Moodle2::Parsers::ResourceParser
Constants
- RESOURCE_MODULE_NAME
- RESOURCE_XML
Public Class Methods
new(backup_dir)
click to toggle source
# File lib/moodle2cc/moodle2/parsers/resource_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/resource_parser.rb, line 12 def parse activity_dirs = activity_directories(@backup_dir, RESOURCE_MODULE_NAME) activity_dirs.map { |dir| parse_resource(dir) } end
Private Instance Methods
parse_files(dir)
click to toggle source
# File lib/moodle2cc/moodle2/parsers/resource_parser.rb, line 42 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_resource(dir)
click to toggle source
# File lib/moodle2cc/moodle2/parsers/resource_parser.rb, line 19 def parse_resource(dir) resource = Moodle2CC::Moodle2::Models::Resource.new activity_dir = File.join(@backup_dir, dir) File.open(File.join(activity_dir, RESOURCE_XML)) do |f| xml = Nokogiri::XML(f).at_xpath('/activity/resource') resource.id = xml.at_xpath('@id').value resource.module_id = xml.at_xpath('/activity/@moduleid').value resource.name = parse_text(xml, 'name') resource.intro = parse_text(xml, 'intro') resource.intro_format = parse_text(xml, 'introformat') resource.to_be_migrated = parse_text(xml, 'tobemigrated') resource.legacy_files = parse_text(xml, 'legacyfiles') resource.legacy_files_last = parse_text(xml, 'legacyfileslast') resource.display = parse_text(xml, 'display') resource.display_options = parse_text(xml, 'displayoptions') resource.filter_files = parse_text(xml, 'filterfiles') end parse_module(activity_dir, resource) resource.file_ids += parse_files(dir) resource end