Class: Senkyoshi::ModuleConverter
- Inherits:
-
Object
- Object
- Senkyoshi::ModuleConverter
- Defined in:
- lib/senkyoshi/models/module_converter.rb
Class Method Summary collapse
- .add_canvas_module(course, data) ⇒ Object
- .add_canvas_module_item(course, module_item, data) ⇒ Object
- .check_module_header(data, subheaders) ⇒ Object
- .create_module_subheader(data) ⇒ Object
- .get_subheader_parent(course, data) ⇒ Object
- .get_subheaders(pre_data) ⇒ Object
- .set_modules(course, pre_data) ⇒ Object
Class Method Details
.add_canvas_module(course, data) ⇒ Object
60 61 62 63 64 |
# 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) ⇒ Object
66 67 68 69 70 71 72 73 74 75 76 |
# 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) ⇒ Object
39 40 41 42 |
# 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) ⇒ Object
49 50 51 52 53 54 55 56 57 58 |
# 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) ⇒ Object
78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 |
# 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) ⇒ Object
44 45 46 47 |
# 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) ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# 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 |