qti 2.6.2 → 2.7.1
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/README.md +2 -2
- data/lib/qti/exporter.rb +5 -7
- data/lib/qti/models/base.rb +6 -2
- data/lib/qti/models/manifest.rb +3 -2
- data/lib/qti/models/resource.rb +6 -3
- data/lib/qti/sanitizer.rb +1 -1
- data/lib/qti/v1/models/assessment_item.rb +2 -2
- data/lib/qti/v1/models/interactions.rb +1 -2
- data/lib/qti/v1/models/numerics/exact_match.rb +0 -4
- data/lib/qti/v1/models/numerics/margin_error.rb +0 -4
- data/lib/qti/v1/models/numerics/precision.rb +0 -4
- data/lib/qti/v1/models/numerics/scoring_data.rb +1 -0
- data/lib/qti/v1/models/numerics/within_range.rb +0 -4
- data/lib/qti/v1/models/question_group.rb +4 -0
- data/lib/qti/v2/models/assessment_test.rb +2 -1
- data/lib/qti/v2/models/interactions/match_interaction.rb +1 -1
- data/lib/qti/version.rb +1 -1
- data/lib/qti.rb +4 -3
- data/spec/fixtures/items_1.2/question_group.xml +1 -0
- data/spec/gemfiles/{rails-5.1.gemfile → rails-6.1.gemfile} +1 -1
- data/spec/lib/qti/models/base_spec.rb +2 -2
- data/spec/lib/qti/v1/models/question_group_spec.rb +1 -0
- data/spec/lib/qti/v2/models/assessment_item_spec.rb +2 -2
- data/spec/lib/qti/v2/models/assessment_test_spec.rb +2 -2
- data/spec/lib/qti/v2/models/stimulus_item_spec.rb +4 -4
- data/spec/lib/qti_spec.rb +3 -3
- data/spec/spec_helper.rb +2 -2
- metadata +38 -24
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 01dd841b1a9215aeaddf4e9211f7e2327544067afa5fb2e24a58186f7c035115
|
4
|
+
data.tar.gz: b4d688f36fb284da0ba8168463b667eb59bf612b2750ef50650230dcc129e2bb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 301bfa283539d68e2feca734a9aa97046c2604c5eedc8f656e217cdbd90949d3ddf88dcdda39ecbb1c19dde68d0b51c5f582aa9b33c3f79995109e921126dbe2
|
7
|
+
data.tar.gz: 880e9ce56fe47276d833ab1b19d1f6b30646cf5a641ddce0f7e6468bb9922b05ccfd5ff140b413f7e8698c532798ade8fa50262a37e93231cfef5af5b3417ae8
|
data/README.md
CHANGED
@@ -80,8 +80,8 @@ cached, making additional runs significantly faster.
|
|
80
80
|
Individual spec runs can be started like so:
|
81
81
|
|
82
82
|
```bash
|
83
|
-
docker-compose run --rm app
|
84
|
-
"BUNDLE_GEMFILE=spec/gemfiles/rails-6.
|
83
|
+
docker-compose run --rm app bash -lc \
|
84
|
+
"BUNDLE_GEMFILE=spec/gemfiles/rails-6.1.gemfile rvm-exec 2.7 rspec"
|
85
85
|
```
|
86
86
|
|
87
87
|
If you'd like to mount your git checkout within the docker container running
|
data/lib/qti/exporter.rb
CHANGED
@@ -7,7 +7,7 @@ module Qti
|
|
7
7
|
@assessment_test = assessment_test
|
8
8
|
@package_root_path = args[:package_root_path] || '.'
|
9
9
|
@exported_file_path =
|
10
|
-
File.join(File.expand_path('..', package_root_path), File.basename(export_file_name))
|
10
|
+
"#{File.join(File.expand_path('..', package_root_path), File.basename(export_file_name))}.zip"
|
11
11
|
end
|
12
12
|
|
13
13
|
def export
|
@@ -167,12 +167,10 @@ module Qti
|
|
167
167
|
|
168
168
|
def add_all_files(zipfile, package_root_path)
|
169
169
|
Dir["#{package_root_path}/**/**"].each do |file|
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
logger.info("#{file} already exists")
|
175
|
-
end
|
170
|
+
entry = file.sub("#{package_root_path}/", '')
|
171
|
+
zipfile.add(entry, file)
|
172
|
+
rescue Zip::EntryExistsError
|
173
|
+
logger.info("#{file} already exists")
|
176
174
|
end
|
177
175
|
end
|
178
176
|
end
|
data/lib/qti/models/base.rb
CHANGED
@@ -1,19 +1,22 @@
|
|
1
1
|
module Qti
|
2
2
|
class ParseError < StandardError; end
|
3
|
+
|
3
4
|
class SpecificationViolation < StandardError; end
|
5
|
+
|
4
6
|
class UnsupportedSchema < StandardError; end
|
5
7
|
|
6
8
|
module Models
|
7
9
|
class Base
|
8
10
|
attr_reader :doc, :path, :package_root, :resource
|
9
11
|
attr_accessor :manifest
|
12
|
+
|
10
13
|
delegate :metadata, to: :@resource, allow_nil: true
|
11
14
|
|
12
15
|
def sanitize_content!(html)
|
13
16
|
sanitizer.clean(html)
|
14
17
|
end
|
15
18
|
|
16
|
-
def self.from_path!(path, package_root
|
19
|
+
def self.from_path!(path, package_root: nil, resource: nil)
|
17
20
|
new(path: path, package_root: package_root, resource: resource)
|
18
21
|
end
|
19
22
|
|
@@ -82,7 +85,8 @@ module Qti
|
|
82
85
|
def package_root=(package_root)
|
83
86
|
@package_root = package_root
|
84
87
|
return unless @package_root
|
85
|
-
|
88
|
+
|
89
|
+
@package_root = "#{Pathname.new(@package_root).cleanpath}/"
|
86
90
|
end
|
87
91
|
|
88
92
|
def relative_path
|
data/lib/qti/models/manifest.rb
CHANGED
@@ -24,7 +24,8 @@ module Qti
|
|
24
24
|
builder = ASSESSMENT_CLASSES[version.split('/').first]
|
25
25
|
raise_unsupported unless builder
|
26
26
|
rsc = resource_for(identifier, version)
|
27
|
-
assessment = builder.from_path!(remap_href_path(asset_resource_for(rsc)), @package_root,
|
27
|
+
assessment = builder.from_path!(remap_href_path(asset_resource_for(rsc)), package_root: @package_root,
|
28
|
+
resource: rsc)
|
28
29
|
assessment.canvas_meta_data(rsc.canvas_metadata)
|
29
30
|
assessment
|
30
31
|
end
|
@@ -46,7 +47,7 @@ module Qti
|
|
46
47
|
end
|
47
48
|
|
48
49
|
def embedded_non_assessment
|
49
|
-
Qti::V2::Models::NonAssessmentTest.from_path!(@path, @package_root)
|
50
|
+
Qti::V2::Models::NonAssessmentTest.from_path!(@path, package_root: @package_root)
|
50
51
|
end
|
51
52
|
end
|
52
53
|
end
|
data/lib/qti/models/resource.rb
CHANGED
@@ -91,7 +91,7 @@ module Qti
|
|
91
91
|
Resource.new(resource_node(base_xpath), self)
|
92
92
|
end
|
93
93
|
|
94
|
-
def assessment_identifiers(embedded_as_assessment
|
94
|
+
def assessment_identifiers(embedded_as_assessment: true)
|
95
95
|
id_list = identifier_list('/assessment')
|
96
96
|
return id_list + [EMBEDDED_NON_ASSESSMENT_ID] if embedded_as_assessment && embedded_non_assessment?
|
97
97
|
id_list
|
@@ -109,13 +109,16 @@ module Qti
|
|
109
109
|
doc = load_asset_resource(rsc_path)
|
110
110
|
|
111
111
|
# There are other types, but all we support right now are object banks...
|
112
|
-
|
112
|
+
unless doc.search('objectbank').empty?
|
113
|
+
Qti::V1::Models::ObjectBank.from_path!(rsc_path, package_root: @package_root,
|
114
|
+
resource: rsc)
|
115
|
+
end
|
113
116
|
end.reject(&:nil?)
|
114
117
|
end
|
115
118
|
|
116
119
|
def objectbanks
|
117
120
|
load_associated_content.select do |c|
|
118
|
-
c.
|
121
|
+
c.instance_of?(Qti::V1::Models::ObjectBank)
|
119
122
|
end
|
120
123
|
end
|
121
124
|
|
data/lib/qti/sanitizer.rb
CHANGED
@@ -56,11 +56,10 @@ module Qti
|
|
56
56
|
end
|
57
57
|
|
58
58
|
def self.get_matches(node, parent, classlist)
|
59
|
-
|
59
|
+
classlist.each_with_object([]) do |interaction_class, result|
|
60
60
|
match = interaction_class.matches(node, parent)
|
61
61
|
result << match if match
|
62
62
|
end
|
63
|
-
matches
|
64
63
|
end
|
65
64
|
end
|
66
65
|
end
|
@@ -38,6 +38,10 @@ module Qti
|
|
38
38
|
selection&.xpath('xmlns:sourcebank_ref')&.text
|
39
39
|
end
|
40
40
|
|
41
|
+
def sourcebank_export_id
|
42
|
+
selection&.xpath('xmlns:sourcebank_export_id')&.text
|
43
|
+
end
|
44
|
+
|
41
45
|
def points_per_item
|
42
46
|
selection.xpath('xmlns:selection_extension/xmlns:points_per_item')&.text&.to_f
|
43
47
|
end
|
@@ -31,7 +31,8 @@ module Qti
|
|
31
31
|
end
|
32
32
|
|
33
33
|
def create_assessment_item(ref)
|
34
|
-
item = Qti::V2::Models::AssessmentItem.from_path!(ref[:path], @package_root,
|
34
|
+
item = Qti::V2::Models::AssessmentItem.from_path!(ref[:path], package_root: @package_root,
|
35
|
+
resource: ref[:resource])
|
35
36
|
item.manifest = manifest
|
36
37
|
item
|
37
38
|
end
|
data/lib/qti/version.rb
CHANGED
data/lib/qti.rb
CHANGED
@@ -5,6 +5,7 @@ require 'active_support/core_ext/hash/except'
|
|
5
5
|
require 'active_support/core_ext/module/delegation'
|
6
6
|
require 'dry-struct'
|
7
7
|
require 'find'
|
8
|
+
require 'forwardable'
|
8
9
|
require 'mathml2latex'
|
9
10
|
require 'nokogiri'
|
10
11
|
require 'pathname'
|
@@ -14,8 +15,8 @@ require 'zip'
|
|
14
15
|
|
15
16
|
module Qti
|
16
17
|
class Importer
|
17
|
-
attr_reader :package_root
|
18
|
-
|
18
|
+
attr_reader :package_root, :assessment_id
|
19
|
+
|
19
20
|
delegate :assessment_identifiers, to: :@manifest
|
20
21
|
delegate :question_bank_identifiers, to: :@manifest
|
21
22
|
|
@@ -39,7 +40,7 @@ module Qti
|
|
39
40
|
def self.manifest(path)
|
40
41
|
mpath = manifest_path(path)
|
41
42
|
package_root = File.dirname(mpath)
|
42
|
-
manifest = Qti::Models::Manifest.from_path!(mpath, package_root
|
43
|
+
manifest = Qti::Models::Manifest.from_path!(mpath, package_root: package_root)
|
43
44
|
[mpath, package_root, manifest]
|
44
45
|
end
|
45
46
|
|
@@ -16,6 +16,7 @@
|
|
16
16
|
<points_per_item>1.0</points_per_item>
|
17
17
|
</selection_extension>
|
18
18
|
<sourcebank_ref>sourcebank_reference_uuid</sourcebank_ref>
|
19
|
+
<sourcebank_export_id>sourcebank_export_id_test</sourcebank_export_id>
|
19
20
|
</selection>
|
20
21
|
</selection_ordering>
|
21
22
|
<item ident="i09d4a5492a38a5b4d1533b8fdbdf7376" title="Question">
|
@@ -118,7 +118,7 @@ describe Qti::Models::Base do
|
|
118
118
|
context 'with explicit package root' do
|
119
119
|
let(:package_root) { File.join('spec', 'fixtures', 'test_qti_2.2') }
|
120
120
|
let(:item_path) { File.join(package_root, 'true-false', 'true-false.xml') }
|
121
|
-
let(:item) { described_class.from_path!(item_path, package_root) }
|
121
|
+
let(:item) { described_class.from_path!(item_path, package_root: package_root) }
|
122
122
|
|
123
123
|
it 'allows safe .. hrefs' do
|
124
124
|
expect do
|
@@ -135,7 +135,7 @@ describe Qti::Models::Base do
|
|
135
135
|
|
136
136
|
context 'with nil package root' do
|
137
137
|
let(:item_path) { File.join('spec', 'fixtures', 'test_qti_2.2', 'true-false', 'true-false.xml') }
|
138
|
-
let(:item) { described_class.from_path!(item_path, nil) }
|
138
|
+
let(:item) { described_class.from_path!(item_path, package_root: nil) }
|
139
139
|
|
140
140
|
it 'rejects .. hrefs' do
|
141
141
|
expect do
|
@@ -8,6 +8,7 @@ describe Qti::V1::Models::QuestionGroup do
|
|
8
8
|
expect(loaded_class.title).to eq('Group 1 (1/4)')
|
9
9
|
expect(loaded_class.identifier).to eq('i4663897607358cfba8636ed6127b9466')
|
10
10
|
expect(loaded_class.sourcebank_ref).to eq('sourcebank_reference_uuid')
|
11
|
+
expect(loaded_class.sourcebank_export_id).to eq('sourcebank_export_id_test')
|
11
12
|
expect(loaded_class.items.count).to eq(4)
|
12
13
|
expect(loaded_class.selection_number).to eq(1)
|
13
14
|
expect(loaded_class.points_per_item).to eq(1)
|
@@ -84,9 +84,9 @@ describe Qti::V2::Models::AssessmentItem do
|
|
84
84
|
|
85
85
|
# it 'removes the passage from the item_body' do
|
86
86
|
# item = test_object.create_assessment_item(item_ref)
|
87
|
-
# rubocop:disable AsciiComments
|
87
|
+
# rubocop:disable Style/AsciiComments
|
88
88
|
# expect(item.item_body).not_to include '¡El equipo de hockey te necesita!'
|
89
|
-
# rubocop:enable AsciiComments
|
89
|
+
# rubocop:enable Style/AsciiComments
|
90
90
|
# end
|
91
91
|
# end
|
92
92
|
end
|
@@ -87,9 +87,9 @@ describe Qti::V2::Models::AssessmentTest do
|
|
87
87
|
# 'passages', '0cfd5cf7-2c91-4b35-a57a-9f5d1709f68f.html'
|
88
88
|
# )
|
89
89
|
# stimulus = loaded_class.create_stimulus(stimulus_path)
|
90
|
-
# rubocop:disable AsciiComments
|
90
|
+
# rubocop:disable Style/AsciiComments
|
91
91
|
# expect(stimulus.title).to eq '¡El equipo de hockey te necesita!'
|
92
|
-
# rubocop:enable AsciiComments
|
92
|
+
# rubocop:enable Style/AsciiComments
|
93
93
|
# end
|
94
94
|
# end
|
95
95
|
end
|
@@ -11,17 +11,17 @@
|
|
11
11
|
# end
|
12
12
|
|
13
13
|
# it 'has the title' do
|
14
|
-
# rubocop:disable AsciiComments
|
14
|
+
# rubocop:disable Style/AsciiComments
|
15
15
|
# expect(loaded_class.title).to eq '¡El equipo de hockey te necesita!'
|
16
|
-
# rubocop:enable AsciiComments
|
16
|
+
# rubocop:enable Style/AsciiComments
|
17
17
|
# end
|
18
18
|
|
19
19
|
# it 'has sanitized item_body' do
|
20
20
|
# expect(loaded_class.body).to include '<div'
|
21
21
|
# expect(loaded_class.body).to include 'Listen to the audio passage.'
|
22
|
-
# rubocop:disable AsciiComments
|
22
|
+
# rubocop:disable Style/AsciiComments
|
23
23
|
# expect(loaded_class.body).to include '¡'
|
24
|
-
# rubocop:enable AsciiComments
|
24
|
+
# rubocop:enable Style/AsciiComments
|
25
25
|
# end
|
26
26
|
|
27
27
|
# it 'has the identifier used to identify it in manifest file' do
|
data/spec/lib/qti_spec.rb
CHANGED
@@ -40,8 +40,8 @@ describe Qti::Importer do
|
|
40
40
|
|
41
41
|
it 'sets the path and package root properly' do
|
42
42
|
item = importer.create_assessment_item(importer.assessment_item_refs.first)
|
43
|
-
expect(item.path).to eq file_path
|
44
|
-
expect(item.package_root).to eq file_path
|
43
|
+
expect(item.path).to eq "#{file_path}/quiz.xml"
|
44
|
+
expect(item.package_root).to eq "#{file_path}/"
|
45
45
|
end
|
46
46
|
end
|
47
47
|
|
@@ -64,7 +64,7 @@ describe Qti::Importer do
|
|
64
64
|
ref = importer.assessment_item_refs.first
|
65
65
|
item = importer.create_assessment_item(ref)
|
66
66
|
expect(item.path).to eq ref[:path]
|
67
|
-
expect(item.package_root).to eq file_path
|
67
|
+
expect(item.package_root).to eq "#{file_path}/"
|
68
68
|
expect(item.manifest).not_to be_nil
|
69
69
|
end
|
70
70
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'byebug'
|
2
2
|
|
3
3
|
# Limit coverage reporting to one build:
|
4
|
-
if /^2\.
|
4
|
+
if /^2\.7/ =~ RUBY_VERSION && /rails-6\.1/ =~ ENV['BUNDLE_GEMFILE']
|
5
5
|
require 'simplecov'
|
6
6
|
|
7
7
|
SimpleCov.start do
|
@@ -16,7 +16,7 @@ end
|
|
16
16
|
$LOAD_PATH.unshift File.expand_path('../lib', __dir__)
|
17
17
|
require 'qti'
|
18
18
|
|
19
|
-
Dir['./spec/support/**/*.rb'].each { |f| require f }
|
19
|
+
Dir['./spec/support/**/*.rb'].sort.each { |f| require f }
|
20
20
|
|
21
21
|
RSpec.configure do |config|
|
22
22
|
config.expect_with :rspec do |expectations|
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: qti
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.7.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Hannah Bottalla
|
8
8
|
- Robinson Rodríguez
|
9
|
-
autorequire:
|
9
|
+
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2021-
|
12
|
+
date: 2021-12-01 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: actionview
|
@@ -17,40 +17,40 @@ dependencies:
|
|
17
17
|
requirements:
|
18
18
|
- - ">="
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version: 5.
|
20
|
+
version: '5.2'
|
21
21
|
- - "<"
|
22
22
|
- !ruby/object:Gem::Version
|
23
|
-
version: '6.
|
23
|
+
version: '6.2'
|
24
24
|
type: :runtime
|
25
25
|
prerelease: false
|
26
26
|
version_requirements: !ruby/object:Gem::Requirement
|
27
27
|
requirements:
|
28
28
|
- - ">="
|
29
29
|
- !ruby/object:Gem::Version
|
30
|
-
version: 5.
|
30
|
+
version: '5.2'
|
31
31
|
- - "<"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '6.
|
33
|
+
version: '6.2'
|
34
34
|
- !ruby/object:Gem::Dependency
|
35
35
|
name: activesupport
|
36
36
|
requirement: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 5.
|
40
|
+
version: '5.2'
|
41
41
|
- - "<"
|
42
42
|
- !ruby/object:Gem::Version
|
43
|
-
version: '6.
|
43
|
+
version: '6.2'
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
46
|
version_requirements: !ruby/object:Gem::Requirement
|
47
47
|
requirements:
|
48
48
|
- - ">="
|
49
49
|
- !ruby/object:Gem::Version
|
50
|
-
version: 5.
|
50
|
+
version: '5.2'
|
51
51
|
- - "<"
|
52
52
|
- !ruby/object:Gem::Version
|
53
|
-
version: '6.
|
53
|
+
version: '6.2'
|
54
54
|
- !ruby/object:Gem::Dependency
|
55
55
|
name: dry-struct
|
56
56
|
requirement: !ruby/object:Gem::Requirement
|
@@ -141,14 +141,14 @@ dependencies:
|
|
141
141
|
requirements:
|
142
142
|
- - "~>"
|
143
143
|
- !ruby/object:Gem::Version
|
144
|
-
version: '1
|
144
|
+
version: '2.1'
|
145
145
|
type: :development
|
146
146
|
prerelease: false
|
147
147
|
version_requirements: !ruby/object:Gem::Requirement
|
148
148
|
requirements:
|
149
149
|
- - "~>"
|
150
150
|
- !ruby/object:Gem::Version
|
151
|
-
version: '1
|
151
|
+
version: '2.1'
|
152
152
|
- !ruby/object:Gem::Dependency
|
153
153
|
name: byebug
|
154
154
|
requirement: !ruby/object:Gem::Requirement
|
@@ -183,14 +183,14 @@ dependencies:
|
|
183
183
|
requirements:
|
184
184
|
- - "~>"
|
185
185
|
- !ruby/object:Gem::Version
|
186
|
-
version: '
|
186
|
+
version: '13.0'
|
187
187
|
type: :development
|
188
188
|
prerelease: false
|
189
189
|
version_requirements: !ruby/object:Gem::Requirement
|
190
190
|
requirements:
|
191
191
|
- - "~>"
|
192
192
|
- !ruby/object:Gem::Version
|
193
|
-
version: '
|
193
|
+
version: '13.0'
|
194
194
|
- !ruby/object:Gem::Dependency
|
195
195
|
name: rspec
|
196
196
|
requirement: !ruby/object:Gem::Requirement
|
@@ -225,14 +225,28 @@ dependencies:
|
|
225
225
|
requirements:
|
226
226
|
- - "~>"
|
227
227
|
- !ruby/object:Gem::Version
|
228
|
-
version:
|
228
|
+
version: 1.8.1
|
229
229
|
type: :development
|
230
230
|
prerelease: false
|
231
231
|
version_requirements: !ruby/object:Gem::Requirement
|
232
232
|
requirements:
|
233
233
|
- - "~>"
|
234
234
|
- !ruby/object:Gem::Version
|
235
|
-
version:
|
235
|
+
version: 1.8.1
|
236
|
+
- !ruby/object:Gem::Dependency
|
237
|
+
name: rubocop-rails
|
238
|
+
requirement: !ruby/object:Gem::Requirement
|
239
|
+
requirements:
|
240
|
+
- - "~>"
|
241
|
+
- !ruby/object:Gem::Version
|
242
|
+
version: 2.9.1
|
243
|
+
type: :development
|
244
|
+
prerelease: false
|
245
|
+
version_requirements: !ruby/object:Gem::Requirement
|
246
|
+
requirements:
|
247
|
+
- - "~>"
|
248
|
+
- !ruby/object:Gem::Version
|
249
|
+
version: 2.9.1
|
236
250
|
- !ruby/object:Gem::Dependency
|
237
251
|
name: simplecov
|
238
252
|
requirement: !ruby/object:Gem::Requirement
|
@@ -261,7 +275,7 @@ dependencies:
|
|
261
275
|
- - "~>"
|
262
276
|
- !ruby/object:Gem::Version
|
263
277
|
version: '1.4'
|
264
|
-
description:
|
278
|
+
description:
|
265
279
|
email:
|
266
280
|
- hannah@instructure.com
|
267
281
|
- rrodriguez-bd@instructure.com
|
@@ -613,9 +627,9 @@ files:
|
|
613
627
|
- spec/fixtures/with_banks/non_cc_assessments/g9a20cf3af178b54e4792cbe992f65790.xml.qti
|
614
628
|
- spec/fixtures/with_banks/non_cc_assessments/gab22de457404cb5cf022078f1e4da75e.xml.qti
|
615
629
|
- spec/fixtures/with_banks/non_cc_assessments/gf3edf8167be16b3a65a00ca923132b07.xml.qti
|
616
|
-
- spec/gemfiles/rails-5.1.gemfile
|
617
630
|
- spec/gemfiles/rails-5.2.gemfile
|
618
631
|
- spec/gemfiles/rails-6.0.gemfile
|
632
|
+
- spec/gemfiles/rails-6.1.gemfile
|
619
633
|
- spec/lib/qti/assessment_item_exporter_spec.rb
|
620
634
|
- spec/lib/qti/exporter_spec.rb
|
621
635
|
- spec/lib/qti/models/assessment_meta_spec.rb
|
@@ -670,7 +684,7 @@ homepage: https://github.com/instructure/qti
|
|
670
684
|
licenses:
|
671
685
|
- MIT
|
672
686
|
metadata: {}
|
673
|
-
post_install_message:
|
687
|
+
post_install_message:
|
674
688
|
rdoc_options: []
|
675
689
|
require_paths:
|
676
690
|
- lib
|
@@ -678,15 +692,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
678
692
|
requirements:
|
679
693
|
- - ">="
|
680
694
|
- !ruby/object:Gem::Version
|
681
|
-
version: '2.
|
695
|
+
version: '2.6'
|
682
696
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
683
697
|
requirements:
|
684
698
|
- - ">="
|
685
699
|
- !ruby/object:Gem::Version
|
686
700
|
version: '0'
|
687
701
|
requirements: []
|
688
|
-
rubygems_version: 3.
|
689
|
-
signing_key:
|
702
|
+
rubygems_version: 3.1.4
|
703
|
+
signing_key:
|
690
704
|
specification_version: 4
|
691
705
|
summary: QTI 1.2 and 2.1 import and export models
|
692
706
|
test_files:
|
@@ -965,9 +979,9 @@ test_files:
|
|
965
979
|
- spec/fixtures/with_banks/non_cc_assessments/g9a20cf3af178b54e4792cbe992f65790.xml.qti
|
966
980
|
- spec/fixtures/with_banks/non_cc_assessments/gab22de457404cb5cf022078f1e4da75e.xml.qti
|
967
981
|
- spec/fixtures/with_banks/non_cc_assessments/gf3edf8167be16b3a65a00ca923132b07.xml.qti
|
968
|
-
- spec/gemfiles/rails-5.1.gemfile
|
969
982
|
- spec/gemfiles/rails-5.2.gemfile
|
970
983
|
- spec/gemfiles/rails-6.0.gemfile
|
984
|
+
- spec/gemfiles/rails-6.1.gemfile
|
971
985
|
- spec/lib/qti/assessment_item_exporter_spec.rb
|
972
986
|
- spec/lib/qti/exporter_spec.rb
|
973
987
|
- spec/lib/qti/models/assessment_meta_spec.rb
|