canvas_cc 0.0.42 → 0.0.43
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 +4 -4
- data/.gitignore +1 -0
- data/canvas_cc.gemspec +3 -3
- data/lib/canvas_cc/canvas_cc/discussion_writer.rb +1 -1
- data/lib/canvas_cc/canvas_cc/grading_standard_writer.rb +1 -1
- data/lib/canvas_cc/canvas_cc/models/discussion.rb +1 -1
- data/lib/canvas_cc/version.rb +1 -1
- data/spec/moodle2cc/canvas_cc/assessment_writer_spec.rb +3 -3
- data/spec/moodle2cc/canvas_cc/assignment_group_writer_spec.rb +1 -1
- data/spec/moodle2cc/canvas_cc/canvas_export_writer_spec.rb +2 -2
- data/spec/moodle2cc/canvas_cc/cartridge_creator_spec.rb +14 -14
- data/spec/moodle2cc/canvas_cc/course_setting_writer_spec.rb +2 -2
- data/spec/moodle2cc/canvas_cc/file_meta_writer_spec.rb +2 -2
- data/spec/moodle2cc/canvas_cc/models/assessment_spec.rb +2 -2
- data/spec/moodle2cc/canvas_cc/models/assignment_spec.rb +1 -1
- data/spec/moodle2cc/canvas_cc/models/discussion_spec.rb +2 -2
- data/spec/moodle2cc/canvas_cc/question_bank_writer_spec.rb +2 -2
- data/spec/moodle2cc/canvas_cc/question_writer_spec.rb +2 -2
- metadata +14 -14
- data/Gemfile.lock +0 -92
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6ad82972f08397f9faf11929d9442bc229d9f817
|
4
|
+
data.tar.gz: 6be99b31764b811bd89b739c00d1e4b67bf565c0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 525aab2d4db0598f8b45140c89bfc02798de7844a754bc499bd801532a331100061fca6d8f721c2d5fa37aca4cc15b35bd675108c72254221ad974c49f93479c
|
7
|
+
data.tar.gz: 2ebb17f5ab29be4aada38b3caf5eb3379ef48c39daaebbe68007091c61a4e490f95a9a9de367acc562e9df5047df2d7befa9db2f041ff87b755754509d642485
|
data/.gitignore
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
Gemfile.lock
|
data/canvas_cc.gemspec
CHANGED
@@ -18,7 +18,7 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
|
-
spec.add_runtime_dependency "rubyzip", '
|
21
|
+
spec.add_runtime_dependency "rubyzip", '~> 1.2.1'
|
22
22
|
spec.add_runtime_dependency "happymapper"
|
23
23
|
spec.add_runtime_dependency "builder"
|
24
24
|
spec.add_runtime_dependency "thor"
|
@@ -27,12 +27,12 @@ Gem::Specification.new do |spec|
|
|
27
27
|
|
28
28
|
spec.add_development_dependency "rake"
|
29
29
|
spec.add_development_dependency "minitest"
|
30
|
-
spec.add_development_dependency "rspec", "~>
|
30
|
+
spec.add_development_dependency "rspec", "~> 3.0"
|
31
31
|
spec.add_development_dependency "guard"
|
32
32
|
spec.add_development_dependency "guard-bundler"
|
33
33
|
spec.add_development_dependency "guard-minitest"
|
34
34
|
spec.add_development_dependency "guard-rspec"
|
35
35
|
spec.add_development_dependency "byebug"
|
36
36
|
spec.add_development_dependency "pry"
|
37
|
-
spec.add_development_dependency "bundler"
|
37
|
+
spec.add_development_dependency "bundler"
|
38
38
|
end
|
@@ -41,7 +41,7 @@ module CanvasCc::CanvasCC
|
|
41
41
|
xml.topic_id discussion_resource.identifier
|
42
42
|
xml.title discussion.title
|
43
43
|
xml.position discussion.position
|
44
|
-
xml.type 'topic'
|
44
|
+
xml.type discussion.type || 'topic'
|
45
45
|
xml.discussion_type discussion.discussion_type
|
46
46
|
xml.require_initial_post discussion.require_initial_post
|
47
47
|
xml.pinned discussion.pinned
|
@@ -8,7 +8,7 @@ module CanvasCc::CanvasCC
|
|
8
8
|
end
|
9
9
|
|
10
10
|
def write
|
11
|
-
return
|
11
|
+
return if @grading_standards.empty?
|
12
12
|
xml = Nokogiri::XML::Builder.new(:encoding => 'UTF-8') do |xml|
|
13
13
|
write_grading_standards(xml) do |xml|
|
14
14
|
@grading_standards.each do |gs|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
module CanvasCc::CanvasCC::Models
|
2
2
|
class Discussion
|
3
3
|
attr_accessor :identifier, :title, :text, :discussion_type, :workflow_state, :require_initial_post,
|
4
|
-
:assignment, :position, :pinned, :lock_at, :delayed_post_at
|
4
|
+
:assignment, :position, :pinned, :lock_at, :delayed_post_at, :type
|
5
5
|
DISCUSSION_ID_POSTFIX = '_DISCUSSION'
|
6
6
|
DISCUSSION_META_POSTFIX = '_meta'
|
7
7
|
IMSDT_TYPE = 'imsdt_xmlv1p1'
|
data/lib/canvas_cc/version.rb
CHANGED
@@ -12,7 +12,7 @@ module CanvasCc::CanvasCC
|
|
12
12
|
end
|
13
13
|
|
14
14
|
it 'raises an error unless question references are first resolved' do
|
15
|
-
expect { subject.write }.to raise_exception
|
15
|
+
expect { subject.write }.to raise_exception("need to resolve questions references")
|
16
16
|
end
|
17
17
|
|
18
18
|
it 'creates the assessment meta file' do
|
@@ -90,8 +90,8 @@ module CanvasCc::CanvasCC
|
|
90
90
|
assessment.items = [question]
|
91
91
|
|
92
92
|
QuestionWriter.register_writer_type(nil)
|
93
|
-
QuestionWriter.
|
94
|
-
QuestionWriter.
|
93
|
+
allow(QuestionWriter).to receive(:write_responses)
|
94
|
+
allow(QuestionWriter).to receive(:write_response_conditions)
|
95
95
|
|
96
96
|
subject.write
|
97
97
|
|
@@ -19,7 +19,7 @@ module CanvasCc::CanvasCC
|
|
19
19
|
|
20
20
|
valid_schema = File.read(fixture_path(File.join('common_cartridge', 'schema', 'cccv1p0.xsd')))
|
21
21
|
xsd = Nokogiri::XML::Schema(valid_schema)
|
22
|
-
expect(xsd.validate(xml)).to
|
22
|
+
expect(xsd.validate(xml)).to be_truthy
|
23
23
|
end
|
24
24
|
|
25
25
|
it 'adds assignment group' do
|
@@ -12,19 +12,19 @@ module CanvasCc::CanvasCC
|
|
12
12
|
course.title = 'My Course'
|
13
13
|
course.canvas_modules << Models::CanvasModule.new
|
14
14
|
|
15
|
-
CanvasExportWriter.
|
16
|
-
CourseSyllabusWriter.
|
17
|
-
GradingStandardWriter.
|
18
|
-
CourseSettingWriter.
|
19
|
-
ModuleMetaWriter.
|
20
|
-
ImsManifestGenerator.
|
21
|
-
FileMetaWriter.
|
22
|
-
PageWriter.
|
23
|
-
DiscussionWriter.
|
24
|
-
AssignmentWriter.
|
25
|
-
QuestionBankWriter.
|
26
|
-
OutcomeWriter.
|
27
|
-
RubricWriter.
|
15
|
+
allow_any_instance_of(CanvasExportWriter).to receive(:write)
|
16
|
+
allow_any_instance_of(CourseSyllabusWriter).to receive(:write)
|
17
|
+
allow_any_instance_of(GradingStandardWriter).to receive(:write)
|
18
|
+
allow_any_instance_of(CourseSettingWriter).to receive(:write)
|
19
|
+
allow_any_instance_of(ModuleMetaWriter).to receive(:write)
|
20
|
+
allow_any_instance_of(ImsManifestGenerator).to receive(:write)
|
21
|
+
allow_any_instance_of(FileMetaWriter).to receive(:write)
|
22
|
+
allow_any_instance_of(PageWriter).to receive(:write)
|
23
|
+
allow_any_instance_of(DiscussionWriter).to receive(:write)
|
24
|
+
allow_any_instance_of(AssignmentWriter).to receive(:write)
|
25
|
+
allow_any_instance_of(QuestionBankWriter).to receive(:write)
|
26
|
+
allow_any_instance_of(OutcomeWriter).to receive(:write)
|
27
|
+
allow_any_instance_of(RubricWriter).to receive(:write)
|
28
28
|
end
|
29
29
|
|
30
30
|
after :each do
|
@@ -35,7 +35,7 @@ module CanvasCc::CanvasCC
|
|
35
35
|
FileMetaWriter, PageWriter, DiscussionWriter, AssignmentWriter, QuestionBankWriter, OutcomeWriter, RubricWriter].each do |klass|
|
36
36
|
it "writes #{klass}" do
|
37
37
|
writer_double = double(write: nil)
|
38
|
-
klass.
|
38
|
+
allow(klass).to receive(:new).and_return(writer_double)
|
39
39
|
subject.create(tmpdir)
|
40
40
|
expect(writer_double).to have_received(:write)
|
41
41
|
end
|
@@ -20,7 +20,7 @@ module CanvasCc::CanvasCC
|
|
20
20
|
|
21
21
|
valid_schema = File.read(fixture_path(File.join('common_cartridge', 'schema', 'cccv1p0.xsd')))
|
22
22
|
xsd = Nokogiri::XML::Schema(valid_schema)
|
23
|
-
expect(xsd.validate(xml)).to
|
23
|
+
expect(xsd.validate(xml)).to be_truthy
|
24
24
|
end
|
25
25
|
|
26
26
|
it 'applies settings to xml' do
|
@@ -44,4 +44,4 @@ module CanvasCc::CanvasCC
|
|
44
44
|
end
|
45
45
|
|
46
46
|
end
|
47
|
-
end
|
47
|
+
end
|
@@ -17,7 +17,7 @@ module CanvasCc::CanvasCC
|
|
17
17
|
|
18
18
|
it 'xml contains the correct schema' do
|
19
19
|
meta_writer = writer(file, nil)
|
20
|
-
meta_writer.
|
20
|
+
allow(meta_writer).to receive(:copy_files) { nil }
|
21
21
|
xml = write_xml(meta_writer)
|
22
22
|
assert_xml_schema(xml)
|
23
23
|
end
|
@@ -28,7 +28,7 @@ module CanvasCc::CanvasCC
|
|
28
28
|
file.file_path = 'sample.txt'
|
29
29
|
write_xml(writer(file, nil))
|
30
30
|
path = File.join(tmpdir, Models::CanvasFile::WEB_RESOURCES, 'sample.txt')
|
31
|
-
expect(File.exist?(path)).to
|
31
|
+
expect(File.exist?(path)).to be_truthy
|
32
32
|
end
|
33
33
|
end
|
34
34
|
|
@@ -34,8 +34,8 @@ describe CanvasCc::CanvasCC::Models::Assessment do
|
|
34
34
|
it_behaves_like 'it has an attribute for', :items
|
35
35
|
|
36
36
|
it 'returns both resources' do
|
37
|
-
subject.
|
38
|
-
subject.
|
37
|
+
allow(subject).to receive(:cc_assessment_resource) {:cc_resource}
|
38
|
+
allow(subject).to receive(:canvas_assessment_resource) {:canvas_resource}
|
39
39
|
expect(subject.resources).to eq [:cc_resource, :canvas_resource]
|
40
40
|
end
|
41
41
|
|
@@ -26,7 +26,7 @@ describe CanvasCc::CanvasCC::Models::Assignment do
|
|
26
26
|
it_behaves_like 'it has an attribute for', :omit_from_final_grade
|
27
27
|
|
28
28
|
it 'creates a resource' do
|
29
|
-
subject.
|
29
|
+
allow(subject).to receive(:assignment_resource) {:assignment_resource}
|
30
30
|
expect(subject.resources).to eq [:assignment_resource]
|
31
31
|
end
|
32
32
|
|
@@ -10,8 +10,8 @@ module CanvasCc::CanvasCC::Models
|
|
10
10
|
it_behaves_like 'it has an attribute for', :workflow_state
|
11
11
|
|
12
12
|
it 'creates resource' do
|
13
|
-
subject.
|
14
|
-
subject.
|
13
|
+
allow(subject).to receive(:discussion_resource) { :discussion_resource }
|
14
|
+
allow(subject).to receive(:meta_resource) { :meta_resource }
|
15
15
|
expect(subject.resources).to eq [:discussion_resource, :meta_resource]
|
16
16
|
end
|
17
17
|
|
@@ -15,8 +15,8 @@ module CanvasCc::CanvasCC
|
|
15
15
|
question.identifier = 42
|
16
16
|
|
17
17
|
QuestionWriter.register_writer_type(nil)
|
18
|
-
QuestionWriter.
|
19
|
-
QuestionWriter.
|
18
|
+
allow(QuestionWriter).to receive(:write_responses)
|
19
|
+
allow(QuestionWriter).to receive(:write_response_conditions)
|
20
20
|
|
21
21
|
question_bank.identifier = 'qb_id'
|
22
22
|
question_bank.title = 'Bank title'
|
@@ -26,7 +26,7 @@ module CanvasCc::CanvasCC
|
|
26
26
|
end
|
27
27
|
|
28
28
|
it 'registers a question type for writing' do
|
29
|
-
FooBarWriter.
|
29
|
+
allow(FooBarWriter).to receive(:write_question_item_xml)
|
30
30
|
Nokogiri::XML::Builder.new(encoding: 'UTF-8') do |node|
|
31
31
|
QuestionWriter.write_question(node, question)
|
32
32
|
end
|
@@ -40,7 +40,7 @@ module CanvasCc::CanvasCC
|
|
40
40
|
Nokogiri::XML::Builder.new(encoding: 'UTF-8') do |node|
|
41
41
|
QuestionWriter.write_question(node, question)
|
42
42
|
end
|
43
|
-
}.to raise_exception
|
43
|
+
}.to raise_exception("Unknown question writer type: nonexistenttype")
|
44
44
|
end
|
45
45
|
|
46
46
|
it 'writes item metadata' do
|
metadata
CHANGED
@@ -1,29 +1,29 @@
|
|
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.43
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Instructure
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-08-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rubyzip
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 1.
|
19
|
+
version: 1.2.1
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - "
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 1.
|
26
|
+
version: 1.2.1
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: happymapper
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -128,14 +128,14 @@ dependencies:
|
|
128
128
|
requirements:
|
129
129
|
- - "~>"
|
130
130
|
- !ruby/object:Gem::Version
|
131
|
-
version: '
|
131
|
+
version: '3.0'
|
132
132
|
type: :development
|
133
133
|
prerelease: false
|
134
134
|
version_requirements: !ruby/object:Gem::Requirement
|
135
135
|
requirements:
|
136
136
|
- - "~>"
|
137
137
|
- !ruby/object:Gem::Version
|
138
|
-
version: '
|
138
|
+
version: '3.0'
|
139
139
|
- !ruby/object:Gem::Dependency
|
140
140
|
name: guard
|
141
141
|
requirement: !ruby/object:Gem::Requirement
|
@@ -224,16 +224,16 @@ dependencies:
|
|
224
224
|
name: bundler
|
225
225
|
requirement: !ruby/object:Gem::Requirement
|
226
226
|
requirements:
|
227
|
-
- - "
|
227
|
+
- - ">="
|
228
228
|
- !ruby/object:Gem::Version
|
229
|
-
version: '
|
229
|
+
version: '0'
|
230
230
|
type: :development
|
231
231
|
prerelease: false
|
232
232
|
version_requirements: !ruby/object:Gem::Requirement
|
233
233
|
requirements:
|
234
|
-
- - "
|
234
|
+
- - ">="
|
235
235
|
- !ruby/object:Gem::Version
|
236
|
-
version: '
|
236
|
+
version: '0'
|
237
237
|
description: Create Canvas CC compatible file
|
238
238
|
email:
|
239
239
|
- pseng@instructure.com
|
@@ -241,8 +241,8 @@ executables: []
|
|
241
241
|
extensions: []
|
242
242
|
extra_rdoc_files: []
|
243
243
|
files:
|
244
|
+
- ".gitignore"
|
244
245
|
- Gemfile
|
245
|
-
- Gemfile.lock
|
246
246
|
- LICENSE.txt
|
247
247
|
- README.md
|
248
248
|
- Rakefile
|
@@ -453,7 +453,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
453
453
|
version: '0'
|
454
454
|
requirements: []
|
455
455
|
rubyforge_project:
|
456
|
-
rubygems_version: 2.2.
|
456
|
+
rubygems_version: 2.5.2.1
|
457
457
|
signing_key:
|
458
458
|
specification_version: 4
|
459
459
|
summary: Create Canvas CC compatible file
|
data/Gemfile.lock
DELETED
@@ -1,92 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: .
|
3
|
-
specs:
|
4
|
-
canvas_cc (0.0.38)
|
5
|
-
builder
|
6
|
-
happymapper
|
7
|
-
nokogiri
|
8
|
-
rdiscount
|
9
|
-
rubyzip (>= 1.0.0)
|
10
|
-
thor
|
11
|
-
|
12
|
-
GEM
|
13
|
-
remote: https://rubygems.org/
|
14
|
-
specs:
|
15
|
-
builder (3.2.3)
|
16
|
-
byebug (3.5.1)
|
17
|
-
columnize (~> 0.8)
|
18
|
-
debugger-linecache (~> 1.2)
|
19
|
-
slop (~> 3.6)
|
20
|
-
celluloid (0.15.2)
|
21
|
-
timers (~> 1.1.0)
|
22
|
-
coderay (1.1.0)
|
23
|
-
columnize (0.8.9)
|
24
|
-
debugger-linecache (1.2.0)
|
25
|
-
diff-lcs (1.2.5)
|
26
|
-
ffi (1.9.3)
|
27
|
-
formatador (0.2.5)
|
28
|
-
guard (2.6.1)
|
29
|
-
formatador (>= 0.2.4)
|
30
|
-
listen (~> 2.7)
|
31
|
-
lumberjack (~> 1.0)
|
32
|
-
pry (>= 0.9.12)
|
33
|
-
thor (>= 0.18.1)
|
34
|
-
guard-bundler (2.0.0)
|
35
|
-
bundler (~> 1.0)
|
36
|
-
guard (~> 2.2)
|
37
|
-
guard-minitest (2.3.2)
|
38
|
-
guard (~> 2.0)
|
39
|
-
minitest (>= 3.0)
|
40
|
-
guard-rspec (4.3.1)
|
41
|
-
guard (~> 2.1)
|
42
|
-
rspec (>= 2.14, < 4.0)
|
43
|
-
happymapper (0.4.1)
|
44
|
-
libxml-ruby (~> 2.0)
|
45
|
-
libxml-ruby (2.9.0)
|
46
|
-
listen (2.7.9)
|
47
|
-
celluloid (>= 0.15.2)
|
48
|
-
rb-fsevent (>= 0.9.3)
|
49
|
-
rb-inotify (>= 0.9)
|
50
|
-
lumberjack (1.0.9)
|
51
|
-
method_source (0.8.2)
|
52
|
-
mini_portile2 (2.2.0)
|
53
|
-
minitest (5.4.1)
|
54
|
-
nokogiri (1.8.0)
|
55
|
-
mini_portile2 (~> 2.2.0)
|
56
|
-
pry (0.10.1)
|
57
|
-
coderay (~> 1.1.0)
|
58
|
-
method_source (~> 0.8.1)
|
59
|
-
slop (~> 3.4)
|
60
|
-
rake (10.3.2)
|
61
|
-
rb-fsevent (0.9.4)
|
62
|
-
rb-inotify (0.9.5)
|
63
|
-
ffi (>= 0.5.0)
|
64
|
-
rdiscount (2.2.0.1)
|
65
|
-
rspec (2.99.0)
|
66
|
-
rspec-core (~> 2.99.0)
|
67
|
-
rspec-expectations (~> 2.99.0)
|
68
|
-
rspec-mocks (~> 2.99.0)
|
69
|
-
rspec-core (2.99.2)
|
70
|
-
rspec-expectations (2.99.2)
|
71
|
-
diff-lcs (>= 1.1.3, < 2.0)
|
72
|
-
rspec-mocks (2.99.2)
|
73
|
-
rubyzip (1.2.1)
|
74
|
-
slop (3.6.0)
|
75
|
-
thor (0.19.1)
|
76
|
-
timers (1.1.0)
|
77
|
-
|
78
|
-
PLATFORMS
|
79
|
-
ruby
|
80
|
-
|
81
|
-
DEPENDENCIES
|
82
|
-
bundler (~> 1.5)
|
83
|
-
byebug
|
84
|
-
canvas_cc!
|
85
|
-
guard
|
86
|
-
guard-bundler
|
87
|
-
guard-minitest
|
88
|
-
guard-rspec
|
89
|
-
minitest
|
90
|
-
pry
|
91
|
-
rake
|
92
|
-
rspec (~> 2)
|