common_cartridge_parser 1.0.0
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 +7 -0
- data/lib/common_cartridge.rb +40 -0
- data/lib/common_cartridge/elements/lom.rb +77 -0
- data/lib/common_cartridge/elements/manifest.rb +30 -0
- data/lib/common_cartridge/elements/metadata.rb +12 -0
- data/lib/common_cartridge/elements/organizations.rb +40 -0
- data/lib/common_cartridge/elements/outcomes.rb +10 -0
- data/lib/common_cartridge/elements/outcomes/outcome.rb +15 -0
- data/lib/common_cartridge/elements/outcomes/outcome_group.rb +12 -0
- data/lib/common_cartridge/elements/outcomes/outcome_root.rb +11 -0
- data/lib/common_cartridge/elements/resources.rb +119 -0
- data/lib/common_cartridge/elements/resources/assessment.rb +21 -0
- data/lib/common_cartridge/elements/resources/assignment.rb +59 -0
- data/lib/common_cartridge/elements/resources/attachments.rb +20 -0
- data/lib/common_cartridge/elements/resources/basic_lti_link.rb +66 -0
- data/lib/common_cartridge/elements/resources/page.rb +22 -0
- data/lib/common_cartridge/elements/resources/topic.rb +28 -0
- data/lib/common_cartridge/elements/resources/web_link.rb +25 -0
- data/lib/common_cartridge/package.rb +87 -0
- data/lib/common_cartridge/parsers/dependencies.rb +23 -0
- data/lib/common_cartridge/parsers/files.rb +34 -0
- data/lib/common_cartridge/parsers/items.rb +58 -0
- data/lib/common_cartridge/parsers/outcomes.rb +17 -0
- data/lib/common_cartridge/parsers/parser.rb +84 -0
- data/lib/common_cartridge/parsers/questions.rb +34 -0
- data/lib/common_cartridge/version.rb +3 -0
- data/spec/elements/lom_spec.rb +66 -0
- data/spec/elements/manifest_spec.rb +31 -0
- data/spec/elements/metadata_spec.rb +40 -0
- data/spec/elements/organizations_spec.rb +51 -0
- data/spec/elements/outcomes/outcome_group_spec.rb +29 -0
- data/spec/elements/outcomes/outcome_spec.rb +37 -0
- data/spec/elements/resources/assignment_spec.rb +53 -0
- data/spec/elements/resources/attachments_spec.rb +24 -0
- data/spec/elements/resources/basic_lti_link_spec.rb +29 -0
- data/spec/elements/resources/resources_spec.rb +73 -0
- data/spec/elements/resources/topic_spec.rb +39 -0
- data/spec/elements/resources/web_link_spec.rb +31 -0
- data/spec/files/canvas_large_1.3.imscc +0 -0
- data/spec/files/canvas_small_1.1.corrupt.imscc +0 -0
- data/spec/files/canvas_small_1.1.imscc +0 -0
- data/spec/package_spec.rb +110 -0
- data/spec/parser_spec.rb +13 -0
- data/spec/spec_helper.rb +13 -0
- metadata +190 -0
@@ -0,0 +1,39 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module CommonCartridge
|
4
|
+
module Elements
|
5
|
+
module Resources
|
6
|
+
describe Topic do
|
7
|
+
before(:all) do
|
8
|
+
manifest = CommonCartridge.parse_from_zip('canvas_small_1.1.imscc').manifest
|
9
|
+
@resource = manifest.resources.detect { |r| r.identifier =~ /I_00006_R/ }
|
10
|
+
end
|
11
|
+
|
12
|
+
it "is parsed correctly" do
|
13
|
+
expect(@resource.files.first.content).to be_kind_of(CommonCartridge::Elements::Resources::Topic)
|
14
|
+
end
|
15
|
+
|
16
|
+
it "has a title" do
|
17
|
+
expect(@resource.files.first.content.title).to eq("The Psychology of Faces")
|
18
|
+
end
|
19
|
+
|
20
|
+
it "has text" do
|
21
|
+
expect(@resource.files.first.content.text).to match(/Your face is ugly\./)
|
22
|
+
end
|
23
|
+
|
24
|
+
it "has a text_type" do
|
25
|
+
expect(@resource.files.first.content.text_type).to eq("text/html")
|
26
|
+
end
|
27
|
+
|
28
|
+
it "has attachments" do
|
29
|
+
expect(@resource.files.first.content.attachments).not_to be_empty
|
30
|
+
|
31
|
+
@resource.files.first.content.attachments.each do |a|
|
32
|
+
expect(a.href).not_to be_empty
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module CommonCartridge
|
4
|
+
module Elements
|
5
|
+
module Resources
|
6
|
+
describe WebLink do
|
7
|
+
before(:all) do
|
8
|
+
manifest = CommonCartridge.parse_from_zip('canvas_small_1.1.imscc').manifest
|
9
|
+
@resource = manifest.resources.detect { |r| r.identifier =~ /I_00005_R/ }
|
10
|
+
end
|
11
|
+
|
12
|
+
it "is parsed correctly" do
|
13
|
+
expect(@resource.files.first.content).to be_kind_of(CommonCartridge::Elements::Resources::WebLink)
|
14
|
+
end
|
15
|
+
|
16
|
+
it "has a title" do
|
17
|
+
expect(@resource.files.first.content.title).to eq("Wikipedia - Your Mom")
|
18
|
+
end
|
19
|
+
|
20
|
+
it "has a href" do
|
21
|
+
expect(@resource.files.first.content.href).to eq("http://en.wikipedia.org/wiki/Maternal_insult")
|
22
|
+
end
|
23
|
+
|
24
|
+
it "has a target" do
|
25
|
+
expect(@resource.files.first.content.target).to eq("_self")
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,110 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module CommonCartridge
|
4
|
+
describe Package do
|
5
|
+
before(:all) do
|
6
|
+
@package = CommonCartridge.parse_from_zip('canvas_large_1.3.imscc')
|
7
|
+
end
|
8
|
+
|
9
|
+
describe "#find_resource" do
|
10
|
+
it "finds a resource by identifier" do
|
11
|
+
resource = @package.find_resource('i4874e552ee3da37b383af53dd9429827_syllabus')
|
12
|
+
expect(resource).to be_kind_of(CommonCartridge::Elements::Resources::Resource)
|
13
|
+
expect(resource.identifier).to eq('i4874e552ee3da37b383af53dd9429827_syllabus')
|
14
|
+
expect(resource.files.size).to be(1)
|
15
|
+
end
|
16
|
+
|
17
|
+
it "returns nil if no resource is found" do
|
18
|
+
resource = @package.find_resource('NONEXISTENT')
|
19
|
+
expect(resource).to be_nil
|
20
|
+
end
|
21
|
+
|
22
|
+
context "#modules" do
|
23
|
+
it "returns all modules in the course" do
|
24
|
+
modules = {'i224aa0e52b019dbf9aeece014df883c7' => 'Example Course Module', 'ibbc4f845ea3211abdd01b7d296a1e835' => 'Example, Locked Module'}
|
25
|
+
|
26
|
+
expect(@package.modules.size).to be(2)
|
27
|
+
@package.modules.each do |mod|
|
28
|
+
expect(modules).to have_key(mod.identifier)
|
29
|
+
expect(modules[mod.identifier]).to eq(mod.title)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
context "#announcements" do
|
35
|
+
it "returns all announcements in a course" do
|
36
|
+
announcements = {"i528c2ce0186a758d13a9bd193bd88611"=>"Include Replies in Podcast Feed Announcement Example",
|
37
|
+
"ic5879f637e17f2e475484297bc1b843d"=>"Enable Podcast Feed Example Announcements",
|
38
|
+
"i1686b8be7bc843860fa51754ce47164a"=>"Basic Announcement",
|
39
|
+
"i852220027877f9c75a980885d566e950"=>"Users Must Post Before Seeing Replies Announcement"}
|
40
|
+
|
41
|
+
expect(@package.announcements.size).to be(4)
|
42
|
+
@package.announcements.each do |announcement|
|
43
|
+
expect(announcements).to have_key(announcement.identifier)
|
44
|
+
expect(announcements[announcement.identifier]).to eq(announcement.title)
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
context "#discussions" do
|
50
|
+
it "returns all discussions in the course" do
|
51
|
+
discussions = {"idf59303d98482bfce1042d7960b0dd08"=>"unpublished discussion",
|
52
|
+
"ic7f740de8643c0d8bdbb099edddf5c3b"=>"Closed for Comment Discussion",
|
53
|
+
"i45f927e81657f719963b4d5182ce7b87"=>"Graded Discussion",
|
54
|
+
"i049a4e1050a9ae9112d552c4bb1d927d"=>"Enable Podcast Feed Discussion",
|
55
|
+
"ia4977b4ba7e0b86ddbd48ce8808a108b"=>"Users Must Post Before Seeing Replies",
|
56
|
+
"i8f219f74f06e31465d76b8d53f1c15ce"=>"Include Replies in Podcast Feed Discussion",
|
57
|
+
"i658f87ccf2a665a190f7b684ba8a5d17"=>"Graded Group Discussion Example",
|
58
|
+
"i1a45b26146cf73c8530c039f1c5a6576"=>"Graded Group Discussion, Assign Grades to Each Student Individually",
|
59
|
+
"id82f5aee12aac6c03677da3baac04590"=>"Graded Discussion with Manually Assigned Peer Reviews",
|
60
|
+
"ifac8262aac5c07e2fd1425c21c2ec4db"=>"Graded Discussion with Automatically Assigned Peer Reviews",
|
61
|
+
"ib6df2d84b4dd1cdf6cec87fc54678b37"=>"Threaded Discussion",
|
62
|
+
"ie896adbc712bb119c4e9a1a673f8a673"=>"Non-Threaded Discussion",
|
63
|
+
"i9a5d38abe47ccfaf18da6727564f0d28"=>"Pinned Discussion"}
|
64
|
+
|
65
|
+
expect(@package.discussions.size).to be(13)
|
66
|
+
@package.discussions.each do |discussion|
|
67
|
+
expect(discussions).to have_key(discussion.identifier)
|
68
|
+
expect(discussions[discussion.identifier]).to eq(discussion.title)
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
context "#pages" do
|
74
|
+
it "returns all pages in the course" do
|
75
|
+
expect(@package.pages.size).to be(2)
|
76
|
+
expect(@package.pages.first.title).to eq("Front Page")
|
77
|
+
expect(@package.pages.last.title).to eq("Page hidden from Students")
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
context "#quizzes" do
|
82
|
+
it "returns all quizzes in the course" do
|
83
|
+
quizzes = {"i7d40ddafe1510b13e094faf1d8aede61"=>"50 Q's straight up tf and mc",
|
84
|
+
"iae800568e436f2368f690a2a87aa92e8"=>"Access code is \"Canvas\" Access Code Example",
|
85
|
+
"i92556d03cef1a20c975b43115011059f"=>"All Question Types with text only (should be 11)",
|
86
|
+
"ib9091a8b64585d919f2397719bf860c3"=>"Graded Anonymous Survey Example",
|
87
|
+
"i86bbc04ca52991f32dc0f9f041b147e9"=>"Graded Survey Example",
|
88
|
+
"iddbfdaac01dadef8fc889dc39ecb9830"=>"Hide Quiz Answers Quiz Example",
|
89
|
+
"i1dee4ce6a2ea508cbad5bca6bb9cdb8f"=>"MC, TF, MA, Essay, FITB 5 q's",
|
90
|
+
"i581ee685674f4a8c9231bd228a92976a"=>"Multiple Attempt Quiz",
|
91
|
+
"i3876e257310e19864b49172a2544bf56"=>"One Question At A Time, Can't Go Back Example",
|
92
|
+
"iad7e264143b9f2ec9dbc71a9d166f6f2"=>"One Question at a time Quiz Example",
|
93
|
+
"i18ee2ad283ef16acf172480ad0e3e514"=>"Practice Quiz Example",
|
94
|
+
"i13b04e02dbb103ae804043c7139d925f"=>"Shuffled Answers Quiz Example",
|
95
|
+
"iec0216ba5240b3b895d1f707dc03be0b"=>"Time Limit Quiz Example",
|
96
|
+
"i569b45ac1ff7388a1416381bc670488b"=>"Ungraded Anonymous Survey Example",
|
97
|
+
"i7a94069ff8e623310830263a426aed7f"=>"Ungraded Survey Example",
|
98
|
+
"i4a339a8425a8a073409188ac7ef5a097"=>"Unnamed Quiz",
|
99
|
+
"ie970b28994395e4ae82d86c22633708d"=>"Unpublished Quiz Example"}
|
100
|
+
|
101
|
+
expect(@package.quizzes.size).to be(17)
|
102
|
+
@package.quizzes.each do |quiz|
|
103
|
+
expect(quizzes).to have_key(quiz.identifier)
|
104
|
+
expect(quizzes[quiz.identifier]).to eq(quiz.title)
|
105
|
+
end
|
106
|
+
end
|
107
|
+
end
|
108
|
+
end
|
109
|
+
end
|
110
|
+
end
|
data/spec/parser_spec.rb
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module CommonCartridge
|
4
|
+
describe Parsers::Parser do
|
5
|
+
describe ".parse_from_zip" do
|
6
|
+
it "parses a Common CommonCartridge zip successfully" do
|
7
|
+
package = CommonCartridge.parse_from_zip("canvas_small_1.1.imscc")
|
8
|
+
expect(package).to be_kind_of(CommonCartridge::Package)
|
9
|
+
expect(package.manifest).to be_kind_of(CommonCartridge::Elements::Manifest)
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
require 'bundler/setup'
|
2
|
+
Bundler.setup
|
3
|
+
|
4
|
+
require 'common_cartridge'
|
5
|
+
|
6
|
+
CommonCartridge.configure do |c|
|
7
|
+
c.import_directory = File.join(Dir.pwd, 'spec', 'files')
|
8
|
+
end
|
9
|
+
|
10
|
+
RSpec.configure do |config|
|
11
|
+
config.order = :random
|
12
|
+
Kernel.srand config.seed
|
13
|
+
end
|
metadata
ADDED
@@ -0,0 +1,190 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: common_cartridge_parser
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Josh Simpson
|
8
|
+
- Remy Obein
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2019-08-12 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: sax-machine
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - "~>"
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: 1.3.2
|
21
|
+
type: :runtime
|
22
|
+
prerelease: false
|
23
|
+
version_requirements: !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - "~>"
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
version: 1.3.2
|
28
|
+
- !ruby/object:Gem::Dependency
|
29
|
+
name: nokogiri
|
30
|
+
requirement: !ruby/object:Gem::Requirement
|
31
|
+
requirements:
|
32
|
+
- - "~>"
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: 1.8.1
|
35
|
+
type: :runtime
|
36
|
+
prerelease: false
|
37
|
+
version_requirements: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - "~>"
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: 1.8.1
|
42
|
+
- !ruby/object:Gem::Dependency
|
43
|
+
name: rubyzip
|
44
|
+
requirement: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - "~>"
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: 1.2.1
|
49
|
+
type: :runtime
|
50
|
+
prerelease: false
|
51
|
+
version_requirements: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - "~>"
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: 1.2.1
|
56
|
+
- !ruby/object:Gem::Dependency
|
57
|
+
name: bundler
|
58
|
+
requirement: !ruby/object:Gem::Requirement
|
59
|
+
requirements:
|
60
|
+
- - ">="
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '0'
|
63
|
+
type: :development
|
64
|
+
prerelease: false
|
65
|
+
version_requirements: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - ">="
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '0'
|
70
|
+
- !ruby/object:Gem::Dependency
|
71
|
+
name: rake
|
72
|
+
requirement: !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
74
|
+
- - ">="
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '0'
|
77
|
+
type: :development
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - ">="
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: '0'
|
84
|
+
- !ruby/object:Gem::Dependency
|
85
|
+
name: rspec
|
86
|
+
requirement: !ruby/object:Gem::Requirement
|
87
|
+
requirements:
|
88
|
+
- - "~>"
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: '3.0'
|
91
|
+
type: :development
|
92
|
+
prerelease: false
|
93
|
+
version_requirements: !ruby/object:Gem::Requirement
|
94
|
+
requirements:
|
95
|
+
- - "~>"
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: '3.0'
|
98
|
+
description: Parse IMS Common Cartridge packages
|
99
|
+
email:
|
100
|
+
- jsimpson@instructure.com
|
101
|
+
- remy@cassia.tech
|
102
|
+
executables: []
|
103
|
+
extensions: []
|
104
|
+
extra_rdoc_files: []
|
105
|
+
files:
|
106
|
+
- lib/common_cartridge.rb
|
107
|
+
- lib/common_cartridge/elements/lom.rb
|
108
|
+
- lib/common_cartridge/elements/manifest.rb
|
109
|
+
- lib/common_cartridge/elements/metadata.rb
|
110
|
+
- lib/common_cartridge/elements/organizations.rb
|
111
|
+
- lib/common_cartridge/elements/outcomes.rb
|
112
|
+
- lib/common_cartridge/elements/outcomes/outcome.rb
|
113
|
+
- lib/common_cartridge/elements/outcomes/outcome_group.rb
|
114
|
+
- lib/common_cartridge/elements/outcomes/outcome_root.rb
|
115
|
+
- lib/common_cartridge/elements/resources.rb
|
116
|
+
- lib/common_cartridge/elements/resources/assessment.rb
|
117
|
+
- lib/common_cartridge/elements/resources/assignment.rb
|
118
|
+
- lib/common_cartridge/elements/resources/attachments.rb
|
119
|
+
- lib/common_cartridge/elements/resources/basic_lti_link.rb
|
120
|
+
- lib/common_cartridge/elements/resources/page.rb
|
121
|
+
- lib/common_cartridge/elements/resources/topic.rb
|
122
|
+
- lib/common_cartridge/elements/resources/web_link.rb
|
123
|
+
- lib/common_cartridge/package.rb
|
124
|
+
- lib/common_cartridge/parsers/dependencies.rb
|
125
|
+
- lib/common_cartridge/parsers/files.rb
|
126
|
+
- lib/common_cartridge/parsers/items.rb
|
127
|
+
- lib/common_cartridge/parsers/outcomes.rb
|
128
|
+
- lib/common_cartridge/parsers/parser.rb
|
129
|
+
- lib/common_cartridge/parsers/questions.rb
|
130
|
+
- lib/common_cartridge/version.rb
|
131
|
+
- spec/elements/lom_spec.rb
|
132
|
+
- spec/elements/manifest_spec.rb
|
133
|
+
- spec/elements/metadata_spec.rb
|
134
|
+
- spec/elements/organizations_spec.rb
|
135
|
+
- spec/elements/outcomes/outcome_group_spec.rb
|
136
|
+
- spec/elements/outcomes/outcome_spec.rb
|
137
|
+
- spec/elements/resources/assignment_spec.rb
|
138
|
+
- spec/elements/resources/attachments_spec.rb
|
139
|
+
- spec/elements/resources/basic_lti_link_spec.rb
|
140
|
+
- spec/elements/resources/resources_spec.rb
|
141
|
+
- spec/elements/resources/topic_spec.rb
|
142
|
+
- spec/elements/resources/web_link_spec.rb
|
143
|
+
- spec/files/canvas_large_1.3.imscc
|
144
|
+
- spec/files/canvas_small_1.1.corrupt.imscc
|
145
|
+
- spec/files/canvas_small_1.1.imscc
|
146
|
+
- spec/package_spec.rb
|
147
|
+
- spec/parser_spec.rb
|
148
|
+
- spec/spec_helper.rb
|
149
|
+
homepage: https://github.com/vhl/common_cartridge_parser/
|
150
|
+
licenses:
|
151
|
+
- MIT
|
152
|
+
metadata: {}
|
153
|
+
post_install_message:
|
154
|
+
rdoc_options: []
|
155
|
+
require_paths:
|
156
|
+
- lib
|
157
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
158
|
+
requirements:
|
159
|
+
- - ">="
|
160
|
+
- !ruby/object:Gem::Version
|
161
|
+
version: '0'
|
162
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - ">="
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '0'
|
167
|
+
requirements: []
|
168
|
+
rubygems_version: 3.0.4
|
169
|
+
signing_key:
|
170
|
+
specification_version: 4
|
171
|
+
summary: CommonCartridgeParser
|
172
|
+
test_files:
|
173
|
+
- spec/elements/lom_spec.rb
|
174
|
+
- spec/elements/manifest_spec.rb
|
175
|
+
- spec/elements/metadata_spec.rb
|
176
|
+
- spec/elements/organizations_spec.rb
|
177
|
+
- spec/elements/outcomes/outcome_group_spec.rb
|
178
|
+
- spec/elements/outcomes/outcome_spec.rb
|
179
|
+
- spec/elements/resources/assignment_spec.rb
|
180
|
+
- spec/elements/resources/attachments_spec.rb
|
181
|
+
- spec/elements/resources/basic_lti_link_spec.rb
|
182
|
+
- spec/elements/resources/resources_spec.rb
|
183
|
+
- spec/elements/resources/topic_spec.rb
|
184
|
+
- spec/elements/resources/web_link_spec.rb
|
185
|
+
- spec/files/canvas_large_1.3.imscc
|
186
|
+
- spec/files/canvas_small_1.1.corrupt.imscc
|
187
|
+
- spec/files/canvas_small_1.1.imscc
|
188
|
+
- spec/package_spec.rb
|
189
|
+
- spec/parser_spec.rb
|
190
|
+
- spec/spec_helper.rb
|