canvas_cc 0.0.33 → 0.0.34

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