class Senkyoshi::ModuleConverter
Public Class Methods
add_canvas_module(course, data)
click to toggle source
# File lib/senkyoshi/models/module_converter.rb, line 60 def self.add_canvas_module(course, data) canvas_module = Module.new(data[:title], data[:file_name]) course.canvas_modules << canvas_module.canvas_conversion course end
add_canvas_module_item(course, module_item, data)
click to toggle source
# File lib/senkyoshi/models/module_converter.rb, line 66 def self.add_canvas_module_item(course, module_item, data) parent_module = get_subheader_parent(course, data) if !parent_module parent_module = Module.new(course.title, MAIN_CANVAS_MODULE). canvas_conversion course.canvas_modules << parent_module end parent_module.module_items ||= {} parent_module.module_items << module_item course end
check_module_header(data, subheaders)
click to toggle source
# File lib/senkyoshi/models/module_converter.rb, line 39 def self.check_module_header(data, subheaders) data[:target_type] == "SUBHEADER" || data[:target_type] == "CONTENT" && (subheaders.empty? || !data[:parent_id]) end
create_module_subheader(data)
click to toggle source
# File lib/senkyoshi/models/module_converter.rb, line 49 def self.create_module_subheader(data) ModuleItem.new( data[:title], "ContextModuleSubHeader", data[:file_name], nil, data[:indent], data[:file_name], ).canvas_conversion end
get_subheader_parent(course, data)
click to toggle source
# File lib/senkyoshi/models/module_converter.rb, line 78 def self.get_subheader_parent(course, data) if !data[:parent_id] parent_module = course.canvas_modules. detect { |a| a.identifier == MAIN_CANVAS_MODULE } else parent_module = course.canvas_modules. detect { |a| a.identifier == data[:parent_id] } if !parent_module course.canvas_modules. reject { |a| a.title == MASTER_MODULE }. each do |cc_module| if cc_module.module_items items = cc_module.module_items.flatten item = items. detect { |i| i.identifier == data[:parent_id] } parent_module = cc_module if item end end end end parent_module end
get_subheaders(pre_data)
click to toggle source
# File lib/senkyoshi/models/module_converter.rb, line 44 def self.get_subheaders(pre_data) pre_data.select { |ct| ct[:target_type] == "SUBHEADER" }. map { |sh| sh[:original_file].gsub("res", "") } end
set_modules(course, pre_data)
click to toggle source
# File lib/senkyoshi/models/module_converter.rb, line 18 def self.set_modules(course, pre_data) master_module = Course.master_module(course) subheaders = get_subheaders(pre_data) pre_data.each do |data| if check_module_header(data, subheaders) course = add_canvas_module(course, data) elsif data[:target_type] == "CONTENT" module_item = create_module_subheader(data) course = add_canvas_module_item(course, module_item, data) elsif data[:target_type] == nil || data[:target_type] == "APPLICATION" module_item = master_module.module_items. detect { |i| i.identifier == data[:file_name] } if module_item course = add_canvas_module_item(course, module_item, data) end end end course.canvas_modules.delete(master_module) course end