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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 335a9d5e80554dd49b1f2a808572f76dcb9a893b
4
- data.tar.gz: 53d0b452e3d8c12e80c429d0b3a04305089ae674
3
+ metadata.gz: f549d5258b5e77abe036e1c2070fcd2351345c8d
4
+ data.tar.gz: 2778c373ba05e902c8c2218c85ea27d0d902c602
5
5
  SHA512:
6
- metadata.gz: 68777d5e4bfd36a453e9fa28c0d9b059d2e1875b80aa3901a66e2cfa16ebc60a65b69b7b55f36b69e269a1005b0017ecc75efb1288164ab9abd03188d72eca7b
7
- data.tar.gz: 7a839022ffee44b07107454e08a1be76bfda54dca1e8115eb06659d9dccfa2c815229b2a1bdb8c4b3b91a24a36d2b67517eb9f28a753ea6b4ad705b128fd1b2b
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 = {}
@@ -0,0 +1,12 @@
1
+ module CanvasCc::CanvasCC::Models
2
+ class Syllabus < CanvasCc::CanvasCC::Models::Resource
3
+
4
+ DIR = '/syllabus'
5
+
6
+ attr_accessor :html
7
+
8
+ def initialize
9
+ super
10
+ end
11
+ end
12
+ end
@@ -1,3 +1,3 @@
1
1
  module CanvasCc
2
- VERSION = "0.0.25"
2
+ VERSION = "0.0.26"
3
3
  end
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.25
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-15 00:00:00.000000000 Z
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.2.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: