canvas_cc 0.0.25 → 0.0.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/canvas_cc/canvas_cc/cartridge_creator.rb +1 -0
- data/lib/canvas_cc/canvas_cc/course_syllabus_writer.rb +42 -0
- data/lib/canvas_cc/canvas_cc/ims_manifest_generator.rb +11 -0
- data/lib/canvas_cc/canvas_cc/models/course.rb +1 -1
- data/lib/canvas_cc/canvas_cc/models/syllabus.rb +12 -0
- data/lib/canvas_cc/version.rb +1 -1
- data/lib/canvas_cc.rb +2 -0
- data/spec/moodle2cc/canvas_cc/cartridge_creator_spec.rb +2 -1
- data/spec/moodle2cc/canvas_cc/course_syllabus_writer_spec.rb +23 -0
- metadata +8 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f549d5258b5e77abe036e1c2070fcd2351345c8d
|
4
|
+
data.tar.gz: 2778c373ba05e902c8c2218c85ea27d0d902c602
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8834a9d8cd2be57252702bba48465b14172fd654bb653e9ec06d8b05df702082be980f4799ba8c506922ef2fb32aa6dd863346e5df63d9bac0d85fa22999dc1e
|
7
|
+
data.tar.gz: 2fbd1b27bda3cbe03cd0fcca130a8c091c23b415448a39c66c41e1d0f5aa1ba54d8a91df28ed5292ca26e3d6576ab6e34e80d7239275eb196190eadf9d7fde38
|
@@ -41,6 +41,7 @@ module CanvasCc::CanvasCC
|
|
41
41
|
Dir.mkdir(File.join(dir, COURSE_SETTINGS_DIR))
|
42
42
|
CanvasCc::CanvasCC::CanvasExportWriter.new(dir).write
|
43
43
|
CanvasCc::CanvasCC::CourseSettingWriter.new(dir, @course).write
|
44
|
+
CanvasCc::CanvasCC::CourseSyllabusWriter.new(dir, @course.syllabus).write
|
44
45
|
CanvasCc::CanvasCC::AssignmentGroupWriter.new(dir, @course.assignment_groups).write
|
45
46
|
CanvasCc::CanvasCC::ModuleMetaWriter.new(dir, *@course.canvas_modules).write
|
46
47
|
CanvasCc::CanvasCC::ImsManifestGenerator.new(dir, @course).write
|
@@ -0,0 +1,42 @@
|
|
1
|
+
module CanvasCc::CanvasCC
|
2
|
+
class CourseSyllabusWriter
|
3
|
+
|
4
|
+
COURSE_SYLLABUS_FILE = 'syllabus.html'
|
5
|
+
|
6
|
+
def initialize(work_dir, syllabus)
|
7
|
+
@work_dir = work_dir
|
8
|
+
@syllabus = syllabus
|
9
|
+
end
|
10
|
+
|
11
|
+
def write
|
12
|
+
return if @syllabus == nil
|
13
|
+
|
14
|
+
builder = build_syllabus_html
|
15
|
+
|
16
|
+
syllabus_directory = File.join(@work_dir, CanvasCc::CanvasCC::CartridgeCreator::COURSE_SETTINGS_DIR)
|
17
|
+
FileUtils.mkdir_p(syllabus_directory)
|
18
|
+
syllabus_file = File.join(syllabus_directory, COURSE_SYLLABUS_FILE)
|
19
|
+
File.open(syllabus_file, 'w') do |f|
|
20
|
+
f.write(builder.to_html)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
private
|
25
|
+
|
26
|
+
def build_syllabus_html
|
27
|
+
Nokogiri::HTML::Builder.new(:encoding => 'UTF-8') do |doc|
|
28
|
+
doc.html { |html|
|
29
|
+
html.head { |head|
|
30
|
+
head.meta('http-equiv' => 'Content-Type', content: 'text/html; charset=utf-8')
|
31
|
+
head.title 'Syllabus'
|
32
|
+
}
|
33
|
+
|
34
|
+
html.body { |body|
|
35
|
+
body << Nokogiri::HTML::fragment(@syllabus.html)
|
36
|
+
}
|
37
|
+
}
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
end
|
42
|
+
end
|
@@ -6,6 +6,7 @@ module CanvasCc::CanvasCC
|
|
6
6
|
SCHEMA_VERSION = '1.1.0'
|
7
7
|
LOMIMSCC = 'lomimscc'
|
8
8
|
SETTINGS_POSTFIX = '_settings'
|
9
|
+
SYLLABUS_POSTFIX = '_syllabus'
|
9
10
|
TYPE_LAR = 'associatedcontent/imscc_xmlv1p1/learning-application-resource'
|
10
11
|
CANVAS_EXPORT_PATH = 'course_settings/canvas_export.txt'
|
11
12
|
ALL_MODULES_IDENTIFIER = 'LearningModules'
|
@@ -98,6 +99,7 @@ module CanvasCc::CanvasCC
|
|
98
99
|
def resources(xml, resources)
|
99
100
|
xml.resources { |xml|
|
100
101
|
course_setting_resource(xml)
|
102
|
+
course_syllabus_resource(xml)
|
101
103
|
resources.each do |resource|
|
102
104
|
xml.resource(resource.attributes) do |xml|
|
103
105
|
resource.files.each { |file| xml.file(href: file) }
|
@@ -118,6 +120,15 @@ module CanvasCc::CanvasCC
|
|
118
120
|
}
|
119
121
|
end
|
120
122
|
|
123
|
+
def course_syllabus_resource(xml)
|
124
|
+
course_settings_dir = CanvasCc::CanvasCC::CartridgeCreator::COURSE_SETTINGS_DIR
|
125
|
+
syllabus_file = File.join(course_settings_dir, CanvasCc::CanvasCC::CourseSyllabusWriter::COURSE_SYLLABUS_FILE)
|
126
|
+
xml.resource('identifier' => @course.identifier + SYLLABUS_POSTFIX,
|
127
|
+
'type' => TYPE_LAR,
|
128
|
+
'href' => syllabus_file) do |xml|
|
129
|
+
xml.file('href' => syllabus_file)
|
130
|
+
end
|
131
|
+
end
|
121
132
|
|
122
133
|
end
|
123
134
|
end
|
@@ -2,7 +2,7 @@ module CanvasCc::CanvasCC::Models
|
|
2
2
|
class Course
|
3
3
|
|
4
4
|
attr_accessor :format, :identifier, :copyright, :settings, :resources, :canvas_modules, :files, :pages, :discussions,
|
5
|
-
:assignments, :assessments, :question_banks, :assignment_groups, :folders
|
5
|
+
:assignments, :assessments, :question_banks, :assignment_groups, :folders, :syllabus
|
6
6
|
|
7
7
|
def initialize
|
8
8
|
@settings = {}
|
data/lib/canvas_cc/version.rb
CHANGED
data/lib/canvas_cc.rb
CHANGED
@@ -53,6 +53,7 @@ module CanvasCc
|
|
53
53
|
autoload :DiscussionWriter, 'canvas_cc/canvas_cc/discussion_writer'
|
54
54
|
autoload :AssignmentWriter, 'canvas_cc/canvas_cc/assignment_writer'
|
55
55
|
autoload :AssignmentGroupWriter, 'canvas_cc/canvas_cc/assignment_group_writer'
|
56
|
+
autoload :CourseSyllabusWriter, 'canvas_cc/canvas_cc/course_syllabus_writer'
|
56
57
|
|
57
58
|
autoload :QuestionWriter, 'canvas_cc/canvas_cc/question_writer'
|
58
59
|
autoload :CalculatedQuestionWriter, 'canvas_cc/canvas_cc/calculated_question_writer'
|
@@ -74,6 +75,7 @@ module CanvasCc
|
|
74
75
|
module Models
|
75
76
|
autoload :Course, 'canvas_cc/canvas_cc/models/course'
|
76
77
|
autoload :Assignment, 'canvas_cc/canvas_cc/models/assignment'
|
78
|
+
autoload :Syllabus, 'canvas_cc/canvas_cc/models/syllabus'
|
77
79
|
autoload :AssignmentGroup, 'canvas_cc/canvas_cc/models/assignment_group'
|
78
80
|
autoload :Assessment, 'canvas_cc/canvas_cc/models/assessment'
|
79
81
|
autoload :DiscussionTopic, 'canvas_cc/canvas_cc/models/discussion_topic'
|
@@ -13,6 +13,7 @@ module CanvasCc::CanvasCC
|
|
13
13
|
course.canvas_modules << Models::CanvasModule.new
|
14
14
|
|
15
15
|
CanvasExportWriter.any_instance.stub(:write)
|
16
|
+
CourseSyllabusWriter.any_instance.stub(:write)
|
16
17
|
CourseSettingWriter.any_instance.stub(:write)
|
17
18
|
ModuleMetaWriter.any_instance.stub(:write)
|
18
19
|
ImsManifestGenerator.any_instance.stub(:write)
|
@@ -27,7 +28,7 @@ module CanvasCc::CanvasCC
|
|
27
28
|
FileUtils.rm_r tmpdir
|
28
29
|
end
|
29
30
|
|
30
|
-
[CanvasExportWriter, CourseSettingWriter, ModuleMetaWriter, ImsManifestGenerator,
|
31
|
+
[CanvasExportWriter, CourseSyllabusWriter, CourseSettingWriter, ModuleMetaWriter, ImsManifestGenerator,
|
31
32
|
FileMetaWriter, PageWriter, DiscussionWriter, AssignmentWriter, QuestionBankWriter].each do |klass|
|
32
33
|
it "writes #{klass}" do
|
33
34
|
writer_double = double(write: nil)
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe CanvasCc::CanvasCC::CourseSyllabusWriter do
|
4
|
+
subject(:writer) { CanvasCc::CanvasCC::CourseSyllabusWriter.new(work_dir, syllabus) }
|
5
|
+
let(:work_dir) { Dir.mktmpdir }
|
6
|
+
let(:syllabus) { CanvasCc::CanvasCC::Models::Syllabus.new }
|
7
|
+
|
8
|
+
after(:each) do
|
9
|
+
FileUtils.rm_r work_dir
|
10
|
+
end
|
11
|
+
|
12
|
+
it 'it writes the syllabus html file' do
|
13
|
+
syllabus.html = '<h2>This is the body</h2>'
|
14
|
+
writer.write
|
15
|
+
html = Nokogiri::HTML(File.read(File.join(work_dir,
|
16
|
+
CanvasCc::CanvasCC::CartridgeCreator::COURSE_SETTINGS_DIR,
|
17
|
+
CanvasCc::CanvasCC::CourseSyllabusWriter::COURSE_SYLLABUS_FILE)))
|
18
|
+
expect(html.at_css('meta[http-equiv]')[:'http-equiv']).to eq 'Content-Type'
|
19
|
+
expect(html.at_css('meta[http-equiv]')[:content]).to eq 'text/html; charset=utf-8'
|
20
|
+
expect(html.at_css('title').text).to eq 'Syllabus'
|
21
|
+
expect(html.at_css('body').inner_html.to_s).to eq '<h2>This is the body</h2>'
|
22
|
+
end
|
23
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: canvas_cc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.26
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Instructure
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-10-
|
11
|
+
date: 2015-10-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rubyzip
|
@@ -258,6 +258,7 @@ files:
|
|
258
258
|
- lib/canvas_cc/canvas_cc/canvas_export_writer.rb
|
259
259
|
- lib/canvas_cc/canvas_cc/cartridge_creator.rb
|
260
260
|
- lib/canvas_cc/canvas_cc/course_setting_writer.rb
|
261
|
+
- lib/canvas_cc/canvas_cc/course_syllabus_writer.rb
|
261
262
|
- lib/canvas_cc/canvas_cc/discussion_writer.rb
|
262
263
|
- lib/canvas_cc/canvas_cc/essay_question_writer.rb
|
263
264
|
- lib/canvas_cc/canvas_cc/file_meta_writer.rb
|
@@ -287,6 +288,7 @@ files:
|
|
287
288
|
- lib/canvas_cc/canvas_cc/models/question_group.rb
|
288
289
|
- lib/canvas_cc/canvas_cc/models/range.rb
|
289
290
|
- lib/canvas_cc/canvas_cc/models/resource.rb
|
291
|
+
- lib/canvas_cc/canvas_cc/models/syllabus.rb
|
290
292
|
- lib/canvas_cc/canvas_cc/models/web_content.rb
|
291
293
|
- lib/canvas_cc/canvas_cc/models/web_link.rb
|
292
294
|
- lib/canvas_cc/canvas_cc/models/workflow_state.rb
|
@@ -326,6 +328,7 @@ files:
|
|
326
328
|
- spec/moodle2cc/canvas_cc/canvas_export_writer_spec.rb
|
327
329
|
- spec/moodle2cc/canvas_cc/cartridge_creator_spec.rb
|
328
330
|
- spec/moodle2cc/canvas_cc/course_setting_writer_spec.rb
|
331
|
+
- spec/moodle2cc/canvas_cc/course_syllabus_writer_spec.rb
|
329
332
|
- spec/moodle2cc/canvas_cc/discussion_writer_spec.rb
|
330
333
|
- spec/moodle2cc/canvas_cc/essay_question_writer_spec.rb
|
331
334
|
- spec/moodle2cc/canvas_cc/file_meta_writer_spec.rb
|
@@ -420,7 +423,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
420
423
|
version: '0'
|
421
424
|
requirements: []
|
422
425
|
rubyforge_project:
|
423
|
-
rubygems_version: 2.
|
426
|
+
rubygems_version: 2.4.3
|
424
427
|
signing_key:
|
425
428
|
specification_version: 4
|
426
429
|
summary: Create Canvas CC compatible file
|
@@ -432,6 +435,7 @@ test_files:
|
|
432
435
|
- spec/moodle2cc/canvas_cc/canvas_export_writer_spec.rb
|
433
436
|
- spec/moodle2cc/canvas_cc/cartridge_creator_spec.rb
|
434
437
|
- spec/moodle2cc/canvas_cc/course_setting_writer_spec.rb
|
438
|
+
- spec/moodle2cc/canvas_cc/course_syllabus_writer_spec.rb
|
435
439
|
- spec/moodle2cc/canvas_cc/discussion_writer_spec.rb
|
436
440
|
- spec/moodle2cc/canvas_cc/essay_question_writer_spec.rb
|
437
441
|
- spec/moodle2cc/canvas_cc/file_meta_writer_spec.rb
|
@@ -506,3 +510,4 @@ test_files:
|
|
506
510
|
- test/unit/logger_test.rb
|
507
511
|
- test/unit/migrator_test.rb
|
508
512
|
- test/unit/resource_factory_test.rb
|
513
|
+
has_rdoc:
|