canvas_cc 0.0.33 → 0.0.34

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: 6a712ed21f7db3f1fa4879c7ec35a067e23827c1
4
- data.tar.gz: 2874b5562ec339ad44070cdf096dba9f266517a9
3
+ metadata.gz: 76ab79c64ff69874d3c14515e0ddf91f569ac324
4
+ data.tar.gz: c40b18e12c8ce35d13e4580e98e6eb4b9ec695f4
5
5
  SHA512:
6
- metadata.gz: 371e32f3297f21a29676302879dc27838fb7dc7704ea479d7675d758601329a595a67c2f22803ad768eeaa499d798cc78af9b550a351d518472f3753c8cc5a53
7
- data.tar.gz: 3c74417ca997ea1b9eac713fb473e1e6427d8938f71d375e8d5335f90f3a25bdc0f9c4f83b1238e668a8cc7ecc73a0a05a7c6f3c0d1ad616182790f8185de7fd
6
+ metadata.gz: 016b64690b99ce4af579d4b01aa7f565870ae8c6e91426ce1e70065e0e921f4f8272ca44d88fafd697105846e8bb4638c25b9a36206f600ce773e96ddd65f1a5
7
+ data.tar.gz: e3c22e9a97c7bd1de557d926ac9c44e37267299ee8029b20291e43409b269ab9d57fcd99d17eed775a04688655b1a36cdb405aa595ef05ffaa5978523eab70db
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- canvas_cc (0.0.31)
4
+ canvas_cc (0.0.34)
5
5
  builder
6
6
  happymapper
7
7
  nokogiri
@@ -12,7 +12,7 @@ PATH
12
12
  GEM
13
13
  remote: https://rubygems.org/
14
14
  specs:
15
- builder (3.2.2)
15
+ builder (3.2.3)
16
16
  byebug (3.5.1)
17
17
  columnize (~> 0.8)
18
18
  debugger-linecache (~> 1.2)
@@ -42,17 +42,17 @@ GEM
42
42
  rspec (>= 2.14, < 4.0)
43
43
  happymapper (0.4.1)
44
44
  libxml-ruby (~> 2.0)
45
- libxml-ruby (2.8.0)
45
+ libxml-ruby (2.9.0)
46
46
  listen (2.7.9)
47
47
  celluloid (>= 0.15.2)
48
48
  rb-fsevent (>= 0.9.3)
49
49
  rb-inotify (>= 0.9)
50
50
  lumberjack (1.0.9)
51
51
  method_source (0.8.2)
52
- mini_portile2 (2.0.0)
52
+ mini_portile2 (2.2.0)
53
53
  minitest (5.4.1)
54
- nokogiri (1.6.7.2)
55
- mini_portile2 (~> 2.0.0.rc2)
54
+ nokogiri (1.8.0)
55
+ mini_portile2 (~> 2.2.0)
56
56
  pry (0.10.1)
57
57
  coderay (~> 1.1.0)
58
58
  method_source (~> 0.8.1)
@@ -70,7 +70,7 @@ GEM
70
70
  rspec-expectations (2.99.2)
71
71
  diff-lcs (>= 1.1.3, < 2.0)
72
72
  rspec-mocks (2.99.2)
73
- rubyzip (1.2.0)
73
+ rubyzip (1.2.1)
74
74
  slop (3.6.0)
75
75
  thor (0.19.1)
76
76
  timers (1.1.0)
@@ -90,6 +90,3 @@ DEPENDENCIES
90
90
  pry
91
91
  rake
92
92
  rspec (~> 2)
93
-
94
- BUNDLED WITH
95
- 1.10.0
@@ -42,6 +42,7 @@ module CanvasCc::CanvasCC
42
42
  CanvasCc::CanvasCC::CanvasExportWriter.new(dir).write
43
43
  CanvasCc::CanvasCC::CourseSettingWriter.new(dir, @course).write
44
44
  CanvasCc::CanvasCC::CourseSyllabusWriter.new(dir, @course.syllabus).write
45
+ CanvasCc::CanvasCC::GradingStandardWriter.new(dir, @course.grading_standards).write
45
46
  CanvasCc::CanvasCC::AssignmentGroupWriter.new(dir, @course.assignment_groups).write
46
47
  CanvasCc::CanvasCC::ModuleMetaWriter.new(dir, *@course.canvas_modules).write
47
48
  CanvasCc::CanvasCC::ImsManifestGenerator.new(dir, @course).write
@@ -0,0 +1,36 @@
1
+ module CanvasCc::CanvasCC
2
+ class GradingStandardWriter
3
+ GRADING_STANDARD_FILE = 'grading_standards.xml'
4
+
5
+ def initialize(work_dir, grading_standards)
6
+ @work_dir = work_dir
7
+ @grading_standards = grading_standards
8
+ end
9
+
10
+ def write
11
+ xml = Nokogiri::XML::Builder.new(:encoding => 'UTF-8') do |xml|
12
+ write_grading_standards(xml) do |xml|
13
+ @grading_standards.each do |gs|
14
+ xml.gradingStandard(identifier: gs.identifier, version: gs.version){
15
+ xml.title gs.title
16
+ xml.data gs.data
17
+ }
18
+ end
19
+ end
20
+ end.to_xml
21
+ File.open(File.join(@work_dir, CanvasCc::CanvasCC::CartridgeCreator::COURSE_SETTINGS_DIR, GRADING_STANDARD_FILE), 'w') { |f| f.write(xml) }
22
+ end
23
+
24
+ private
25
+
26
+ def write_grading_standards(xml)
27
+ xml.gradingStandards(
28
+ 'xmlns' => 'http://canvas.instructure.com/xsd/cccv1p0',
29
+ 'xmlns:xsi' => 'http://www.w3.org/2001/XMLSchema-instance',
30
+ 'xsi:schemaLocation' => 'http://canvas.instructure.com/xsd/cccv1p0 http://canvas.instructure.com/xsd/cccv1p0.xsd'
31
+ ) {
32
+ yield xml
33
+ }
34
+ end
35
+ end
36
+ end
@@ -114,9 +114,11 @@ module CanvasCc::CanvasCC
114
114
  export_file = File.join(course_setting_dir, CanvasCc::CanvasCC::CanvasExportWriter::CANVAS_EXPORT_FILE)
115
115
  course_setting_file = File.join(course_setting_dir, CanvasCc::CanvasCC::CourseSettingWriter::COURSE_SETTINGS_FILE)
116
116
  module_meta_file = File.join(course_setting_dir, CanvasCc::CanvasCC::ModuleMetaWriter::MODULE_META_FILE)
117
+ grading_standards_file = File.join(course_setting_dir, CanvasCc::CanvasCC::GradingStandardWriter::GRADING_STANDARD_FILE)
117
118
  xml.resource('identifier' => @course.identifier + SETTINGS_POSTFIX, 'type' => TYPE_LAR, 'href' => export_file) { |xml|
118
119
  xml.file('href' => course_setting_file)
119
120
  xml.file('href' => module_meta_file) if @course.canvas_modules.count > 0
121
+ xml.file('href' => grading_standards_file)
120
122
  }
121
123
  end
122
124
 
@@ -2,7 +2,8 @@ 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, :syllabus, :outcomes, :rubrics
5
+ :assignments, :assessments, :question_banks, :assignment_groups, :folders, :syllabus, :outcomes, :rubrics,
6
+ :grading_standards
6
7
 
7
8
  def initialize
8
9
  @settings = {}
@@ -0,0 +1,9 @@
1
+ module CanvasCc::CanvasCC::Models
2
+ class GradingStandard
3
+ attr_accessor :identifier, :title, :data, :version
4
+
5
+ def initialize
6
+ @data = []
7
+ end
8
+ end
9
+ end
@@ -1,3 +1,3 @@
1
1
  module CanvasCc
2
- VERSION = "0.0.33"
2
+ VERSION = "0.0.34"
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 :GradingStandardWriter, 'canvas_cc/canvas_cc/grading_standard_writer'
56
57
  autoload :CourseSyllabusWriter, 'canvas_cc/canvas_cc/course_syllabus_writer'
57
58
  autoload :OutcomeWriter, 'canvas_cc/canvas_cc/outcome_writer'
58
59
  autoload :RatingWriter, 'canvas_cc/canvas_cc/rating_writer'
@@ -79,6 +80,7 @@ module CanvasCc
79
80
  autoload :Course, 'canvas_cc/canvas_cc/models/course'
80
81
  autoload :Assignment, 'canvas_cc/canvas_cc/models/assignment'
81
82
  autoload :Syllabus, 'canvas_cc/canvas_cc/models/syllabus'
83
+ autoload :GradingStandard, 'canvas_cc/canvas_cc/models/grading_standard'
82
84
  autoload :AssignmentGroup, 'canvas_cc/canvas_cc/models/assignment_group'
83
85
  autoload :Assessment, 'canvas_cc/canvas_cc/models/assessment'
84
86
  autoload :DiscussionTopic, 'canvas_cc/canvas_cc/models/discussion_topic'
@@ -14,6 +14,7 @@ module CanvasCc::CanvasCC
14
14
 
15
15
  CanvasExportWriter.any_instance.stub(:write)
16
16
  CourseSyllabusWriter.any_instance.stub(:write)
17
+ GradingStandardWriter.any_instance.stub(:write)
17
18
  CourseSettingWriter.any_instance.stub(:write)
18
19
  ModuleMetaWriter.any_instance.stub(:write)
19
20
  ImsManifestGenerator.any_instance.stub(:write)
@@ -30,7 +31,7 @@ module CanvasCc::CanvasCC
30
31
  FileUtils.rm_r tmpdir
31
32
  end
32
33
 
33
- [CanvasExportWriter, CourseSyllabusWriter, CourseSettingWriter, ModuleMetaWriter, ImsManifestGenerator,
34
+ [CanvasExportWriter, CourseSyllabusWriter, GradingStandardWriter, CourseSettingWriter, ModuleMetaWriter, ImsManifestGenerator,
34
35
  FileMetaWriter, PageWriter, DiscussionWriter, AssignmentWriter, QuestionBankWriter, OutcomeWriter, RubricWriter].each do |klass|
35
36
  it "writes #{klass}" do
36
37
  writer_double = double(write: nil)
@@ -0,0 +1,40 @@
1
+ require 'spec_helper'
2
+
3
+ module CanvasCc::CanvasCC
4
+ describe GradingStandardWriter do
5
+ let(:grading_standard) { CanvasCc::CanvasCC::Models::GradingStandard.new }
6
+ let(:tmpdir) { Dir.mktmpdir }
7
+
8
+ before :each do
9
+ Dir.mkdir(File.join(tmpdir, CartridgeCreator::COURSE_SETTINGS_DIR))
10
+ end
11
+
12
+ after :each do
13
+ FileUtils.rm_r tmpdir
14
+ end
15
+
16
+ it 'adds the grading standard' do
17
+ grading_data = [["A", 0.9], ["B", 0.8], ["C", 0.7], ["D", 0.6], ["E", 0.0]]
18
+ grading_standard.identifier = '123'
19
+ grading_standard.title = 'my title'
20
+ grading_standard.data = grading_data
21
+ grading_standard.version = '2'
22
+ xml = write_xml(grading_standard)
23
+ expect(xml.at_xpath('/xmlns:gradingStandards/xmlns:gradingStandard/@identifier').text).to eq '123'
24
+ expect(xml.at_xpath('/xmlns:gradingStandards/xmlns:gradingStandard/@version').text).to eq '2'
25
+ expect(xml.at_xpath('/xmlns:gradingStandards/xmlns:gradingStandard/xmlns:title').text).to eq 'my title'
26
+ expect(xml.at_xpath('/xmlns:gradingStandards/xmlns:gradingStandard/xmlns:data').text).to eq grading_data.to_s
27
+ end
28
+
29
+ private
30
+
31
+ def write_xml(grading_standard)
32
+ GradingStandardWriter.new(tmpdir, [grading_standard]).write
33
+ path = File.join(tmpdir,
34
+ CartridgeCreator::COURSE_SETTINGS_DIR,
35
+ GradingStandardWriter::GRADING_STANDARD_FILE)
36
+ Nokogiri::XML(File.read(path))
37
+ end
38
+
39
+ end
40
+ 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.33
4
+ version: 0.0.34
5
5
  platform: ruby
6
6
  authors:
7
7
  - Instructure
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-07-11 00:00:00.000000000 Z
11
+ date: 2017-07-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rubyzip
@@ -277,6 +277,7 @@ files:
277
277
  - lib/canvas_cc/canvas_cc/essay_question_writer.rb
278
278
  - lib/canvas_cc/canvas_cc/file_meta_writer.rb
279
279
  - lib/canvas_cc/canvas_cc/file_upload_question_writer.rb
280
+ - lib/canvas_cc/canvas_cc/grading_standard_writer.rb
280
281
  - lib/canvas_cc/canvas_cc/ims_manifest_generator.rb
281
282
  - lib/canvas_cc/canvas_cc/matching_question_writer.rb
282
283
  - lib/canvas_cc/canvas_cc/models/answer.rb
@@ -290,6 +291,7 @@ files:
290
291
  - lib/canvas_cc/canvas_cc/models/course.rb
291
292
  - lib/canvas_cc/canvas_cc/models/discussion.rb
292
293
  - lib/canvas_cc/canvas_cc/models/discussion_topic.rb
294
+ - lib/canvas_cc/canvas_cc/models/grading_standard.rb
293
295
  - lib/canvas_cc/canvas_cc/models/matching_question.rb
294
296
  - lib/canvas_cc/canvas_cc/models/module_completion_requirement.rb
295
297
  - lib/canvas_cc/canvas_cc/models/module_item.rb
@@ -354,6 +356,7 @@ files:
354
356
  - spec/moodle2cc/canvas_cc/essay_question_writer_spec.rb
355
357
  - spec/moodle2cc/canvas_cc/file_meta_writer_spec.rb
356
358
  - spec/moodle2cc/canvas_cc/file_upload_question_writer_spec.rb
359
+ - spec/moodle2cc/canvas_cc/grading_standard_writer_spec.rb
357
360
  - spec/moodle2cc/canvas_cc/ims_manifest_generator_spec.rb
358
361
  - spec/moodle2cc/canvas_cc/matching_question_writer_spec.rb
359
362
  - spec/moodle2cc/canvas_cc/models/assessment_spec.rb
@@ -449,7 +452,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
449
452
  version: '0'
450
453
  requirements: []
451
454
  rubyforge_project:
452
- rubygems_version: 2.4.3
455
+ rubygems_version: 2.2.2
453
456
  signing_key:
454
457
  specification_version: 4
455
458
  summary: Create Canvas CC compatible file
@@ -466,6 +469,7 @@ test_files:
466
469
  - spec/moodle2cc/canvas_cc/essay_question_writer_spec.rb
467
470
  - spec/moodle2cc/canvas_cc/file_meta_writer_spec.rb
468
471
  - spec/moodle2cc/canvas_cc/file_upload_question_writer_spec.rb
472
+ - spec/moodle2cc/canvas_cc/grading_standard_writer_spec.rb
469
473
  - spec/moodle2cc/canvas_cc/ims_manifest_generator_spec.rb
470
474
  - spec/moodle2cc/canvas_cc/matching_question_writer_spec.rb
471
475
  - spec/moodle2cc/canvas_cc/models/assessment_spec.rb
@@ -541,4 +545,3 @@ test_files:
541
545
  - test/unit/logger_test.rb
542
546
  - test/unit/migrator_test.rb
543
547
  - test/unit/resource_factory_test.rb
544
- has_rdoc: