canvas_cc 0.0.25 → 0.0.26
Sign up to get free protection for your applications and to get access to all the features.
- 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:
|