class Moodle2CC::Moodle2::Parsers::AssignmentParser
Constants
- ASSIGNMENT_MODULE_NAMES
Public Class Methods
new(backup_dir)
click to toggle source
# File lib/moodle2cc/moodle2/parsers/assignment_parser.rb, line 10 def initialize(backup_dir) @backup_dir = backup_dir end
Public Instance Methods
parse()
click to toggle source
# File lib/moodle2cc/moodle2/parsers/assignment_parser.rb, line 14 def parse assignments = [] ASSIGNMENT_MODULE_NAMES.each do |mod_name, xml_file| activity_dirs = activity_directories(@backup_dir, mod_name) assignments += activity_dirs.map { |dir| parse_assignment(dir, mod_name, xml_file) } end assignments end
Private Instance Methods
parse_assignment(dir, mod_name, xml_file)
click to toggle source
# File lib/moodle2cc/moodle2/parsers/assignment_parser.rb, line 25 def parse_assignment(dir, mod_name, xml_file) assignment = Moodle2CC::Moodle2::Models::Assignment.new activity_dir = File.join(@backup_dir, dir) File.open(File.join(activity_dir, xml_file)) do |f| xml = Nokogiri::XML(f) assignment.id = xml.at_xpath("/activity/#{mod_name}/@id").value assignment.module_id = xml.at_xpath('/activity/@moduleid').value assignment.name = parse_text(xml, "/activity/#{mod_name}/name") assignment.intro = parse_text(xml, "/activity/#{mod_name}/intro") assignment.intro_format = parse_text(xml, "/activity/#{mod_name}/introformat") assignment.always_show_description = parse_text(xml, "/activity/#{mod_name}/alwaysshowdescription") assignment.submission_drafts = parse_text(xml, "/activity/#{mod_name}/submissiondrafts") assignment.send_notifications = parse_text(xml, "/activity/#{mod_name}/sendnotifications") assignment.send_late_notifications = parse_text(xml, "/activity/#{mod_name}/sendlatenotifications") assignment.due_date = parse_text(xml, "/activity/#{mod_name}/duedate") assignment.cut_off_date = parse_text(xml, "/activity/#{mod_name}/cutoffdate") assignment.allow_submissions_from_date = parse_text(xml, "/activity/#{mod_name}/allowsubmissionsfromdate") assignment.grade = parse_text(xml, "/activity/#{mod_name}/grade") assignment.time_modified = parse_text(xml, "/activity/#{mod_name}/timemodified") assignment.completion_submit = parse_text(xml, "/activity/#{mod_name}/completionsubmit") assignment.require_submission_statement = parse_text(xml, "/activity/#{mod_name}/requiresubmissionstatement") assignment.team_submission = parse_text(xml, "/activity/#{mod_name}/teamsubmission") assignment.require_all_team_members_submit = parse_text(xml, "/activity/#{mod_name}/requireallteammemberssubmit") assignment.team_submission_grouping_id = parse_text(xml, "/activity/#{mod_name}/teamsubmissiongroupingid") assignment.blind_marking = parse_text(xml, "/activity/#{mod_name}/blindmarking") assignment.reveal_identities = parse_text(xml, "/activity/#{mod_name}/revealidentities") plugins = xml.at_xpath("/activity/#{mod_name}/plugin_configs") if plugins assignment.online_text_submission = parse_text(plugins, 'plugin_config[(plugin="onlinetext" and subtype="assignsubmission" and name="enabled")]/value', true) assignment.file_submission = parse_text(plugins, 'plugin_config[(plugin="file" and subtype="assignsubmission" and name="enabled")]/value', true) assignment.max_files_submission = parse_text(plugins, 'plugin_config[(plugin="file" and subtype="assignsubmission" and name="maxfilesubmissions")]/value', true) assignment.max_file_size_submission = parse_text(plugins, 'plugin_config[(plugin="file" and subtype="assignsubmission" and name="maxsubmissionsizebytes")]/value', true) assignment.submission_comments = parse_text(plugins, 'plugin_config[(plugin="comments" and subtype="assignsubmission" and name="enabled")]/value', true) assignment.feedback_comments = parse_text(plugins, 'plugin_config[(plugin="comments" and subtype="assignfeedback" and name="enabled")]/value', true) assignment.feedback_files = parse_text(plugins, 'plugin_config[(plugin="file" and subtype="assignfeedback" and name="enabled")]/value', true) assignment.offline_grading_worksheet = parse_text(plugins, 'plugin_config[(plugin="offline" and subtype="assignfeedback" and name="enabled")]/value', true) end end parse_module(activity_dir,assignment) assignment end