class Moodle2CC::Moodle2::Parsers::WikiParser
Constants
- WIKI_MODULE_NAME
- WIKI_XML
Public Class Methods
new(backup_dir)
click to toggle source
# File lib/moodle2cc/moodle2/parsers/wiki_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/wiki_parser.rb, line 12 def parse activity_dirs = activity_directories(@backup_dir, WIKI_MODULE_NAME) activity_dirs.map { |dir| parse_wiki(dir) } end
Private Instance Methods
parse_wiki(dir)
click to toggle source
# File lib/moodle2cc/moodle2/parsers/wiki_parser.rb, line 19 def parse_wiki(dir) wiki = Moodle2CC::Moodle2::Models::Wiki.new activity_dir = File.join(@backup_dir, dir) File.open(File.join(activity_dir, WIKI_XML)) do |f| wiki_xml = Nokogiri::XML(f) wiki.id = wiki_xml.at_xpath('/activity/wiki/@id').value wiki.module_id = wiki_xml.at_xpath('/activity/@moduleid').value wiki.name = parse_text(wiki_xml, '/activity/wiki/name') wiki.intro = parse_text(wiki_xml, '/activity/wiki/intro') wiki.intro_format = parse_text(wiki_xml, '/activity/wiki/introformat') wiki.first_page_title = parse_text(wiki_xml, '/activity/wiki/firstpagetitle') wiki_xml.search('/activity/wiki/subwikis/subwiki/pages/page').each do |node| wiki.pages << { :id => node.attributes['id'].value, :title => parse_text(node, 'title'), :content => parse_text(node, 'cachedcontent') } end end parse_module(activity_dir, wiki) wiki end