class Moodle2CC::Moodle2::Parsers::SectionParser
Constants
- SECTION_XML
Public Class Methods
new(backup_dir)
click to toggle source
# File lib/moodle2cc/moodle2/parsers/section_parser.rb, line 7 def initialize(backup_dir) @backup_dir = backup_dir end
Public Instance Methods
parse()
click to toggle source
# File lib/moodle2cc/moodle2/parsers/section_parser.rb, line 11 def parse section_directories.each_with_index.map { |section, i| parse_section(section, i) } end
Private Instance Methods
parse_section(section_dir, i)
click to toggle source
# File lib/moodle2cc/moodle2/parsers/section_parser.rb, line 17 def parse_section(section_dir, i) section = Moodle2CC::Moodle2::Models::Section.new File.open(File.join(@backup_dir, section_dir, SECTION_XML)) do |f| section_xml = Nokogiri::XML(f) section.position = i section.id = section_xml.%('/section/@id').value section.number = parse_text(section_xml, '/section/number') section.name = parse_text(section_xml, '/section/name') section.summary = parse_text(section_xml, '/section/summary') section.summary_format = parse_text(section_xml, 'section/summaryformat') section.sequence = parse_text(section_xml, 'section/sequence') if section.sequence section.sequence = section.sequence.split(',') else section.sequence = [] end section.visible = parse_text(section_xml, 'section/visible') == '1' ? true : false section.available_from = parse_text(section_xml, 'section/availablefrom') section.available_until = parse_text(section_xml, 'section/availableuntil') section.show_availability = parse_text(section_xml, 'section/showavailability') section.grouping_id = parse_text(section_xml, 'section/groupingid') end if section.name.to_s.strip.length == 0 section.name = Nokogiri::HTML(section.summary.to_s).text.to_s.strip rescue '' end section end
section_directories()
click to toggle source
# File lib/moodle2cc/moodle2/parsers/section_parser.rb, line 48 def section_directories File.open(File.join(@backup_dir, Moodle2CC::Moodle2::Extractor::MOODLE_BACKUP_XML)) do |f| moodle_backup_xml = Nokogiri::XML(f) sections = moodle_backup_xml / '/moodle_backup/information/contents/sections/section' sections.map { |section| section./('directory').text } end end