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 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: