class Moodle2CC::Moodle2::Parsers::ChoiceParser

Constants

CHOICE_MODULE_NAME
CHOICE_XML

Public Class Methods

new(backup_dir) click to toggle source
# File lib/moodle2cc/moodle2/parsers/choice_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/choice_parser.rb, line 12
def parse
  activity_dirs = activity_directories(@backup_dir, CHOICE_MODULE_NAME)
  activity_dirs.map { |dir| parse_choice(dir) }
end

Private Instance Methods

parse_choice(dir) click to toggle source
# File lib/moodle2cc/moodle2/parsers/choice_parser.rb, line 19
def parse_choice(dir)
  choice = Moodle2CC::Moodle2::Models::Choice.new
  activity_dir = File.join(@backup_dir, dir)
  File.open(File.join(activity_dir, CHOICE_XML)) do |f|
    xml = Nokogiri::XML(f)
    choice.id = xml.at_xpath('/activity/choice/@id').value
    choice.module_id = xml.at_xpath('/activity/@moduleid').value
    choice.name = parse_text(xml, '/activity/choice/name')
    choice.intro = parse_text(xml, '/activity/choice/intro')
    choice.intro_format = parse_text(xml, '/activity/choice/introformat')
    
    choice.time_open = parse_text(xml, '/activity/choice/timeopen')
    choice.time_close = parse_text(xml, '/activity/choice/timeclose')
    choice.time_modified = parse_text(xml, '/activity/choice/timemodified')

    choice.publish = parse_text(xml, '/activity/choice/publish')
    choice.show_results = parse_text(xml, '/activity/choice/showresults')
    choice.display = parse_text(xml, '/activity/choice/display')
    choice.allow_update = parse_text(xml, '/activity/choice/allowupdate')
    choice.show_unanswered = parse_text(xml, '/activity/choice/showunanswered')
    choice.limit_answers = parse_text(xml, '/activity/choice/limitanswers')
    choice.completion_submit = parse_text(xml, '/activity/choice/completionsubmit')

    xml.search('/activity/choice/options/option').each do |node|
      choice.options << parse_text(node, 'text')
    end
  end
  parse_module(activity_dir, choice)

  choice
end