qti 2.22.6 → 2.23.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 +4 -4
- data/lib/qti/v1/models/assessment.rb +4 -0
- data/lib/qti/v1/models/object_bank.rb +4 -0
- data/lib/qti/v2/models/assessment_test.rb +4 -0
- data/lib/qti/version.rb +1 -1
- data/spec/fixtures/test_qti_1.2/quiz.xml +1 -1
- data/spec/lib/qti/v1/models/assessment_spec.rb +9 -0
- data/spec/lib/qti/v1/models/object_bank_spec.rb +9 -1
- data/spec/lib/qti/v2/models/assessment_test_spec.rb +4 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e31df9f591cac79f5ac4c2d6ac0901757151e68532ee60cd94599bfd028fd114
|
4
|
+
data.tar.gz: 29eebbef83f5cbd6e08ba3e556e2fb390995f3794a218d7529c1b27e7b6b2c99
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: '0983e7070edb2d6d6bea9efa4fa7e3daff11a77fdddb9230a13dc71fa7191ca69deba037443fb8a57fb6737c5e609ab383568d07d89f39c1907aa779c2505faa'
|
7
|
+
data.tar.gz: d3e1041c1ff761a9db545fbe0bca3170d6247cbcb73070c42160c5444e095a7d3f9453bf4da2a9c60ffdeb71fc6f755ce5af7cec4aa4857c551fe78ea0b38ee3
|
@@ -14,6 +14,10 @@ module Qti
|
|
14
14
|
@title ||= xpath_with_single_check('.//xmlns:assessment/@title')&.content || File.basename(@path, '.xml')
|
15
15
|
end
|
16
16
|
|
17
|
+
def external_assignment_id
|
18
|
+
@external_assignment_id ||= xpath_with_single_check('.//xmlns:assessment/@external_assignment_id')&.content
|
19
|
+
end
|
20
|
+
|
17
21
|
def assessment_items
|
18
22
|
@doc.xpath("//*[self::#{GROUP_ID} or self::xmlns:item[not(ancestor::#{GROUP_ID})]" \
|
19
23
|
' or self::xmlns:bankentry_item]')
|
@@ -13,6 +13,10 @@ module Qti
|
|
13
13
|
@identifier ||= xpath_with_single_check('.//xmlns:objectbank/@ident')&.content
|
14
14
|
end
|
15
15
|
|
16
|
+
def canvas_item_bank
|
17
|
+
@canvas_item_bank ||= xpath_with_single_check('.//xmlns:objectbank/@canvas_item_bank')&.content
|
18
|
+
end
|
19
|
+
|
16
20
|
# tells us whether the bank was an account or course bank
|
17
21
|
def bank_type
|
18
22
|
@bank_type ||= xpath_with_single_check(
|
@@ -13,6 +13,10 @@ module Qti
|
|
13
13
|
@title ||= xpath_with_single_check('//xmlns:assessmentTest/@title')&.content || File.basename(@path, '.xml')
|
14
14
|
end
|
15
15
|
|
16
|
+
def external_assignment_id
|
17
|
+
nil
|
18
|
+
end
|
19
|
+
|
16
20
|
def assessment_items
|
17
21
|
# Return the xml files we should be parsing
|
18
22
|
@assessment_items ||= begin
|
data/lib/qti/version.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
<?xml version="1.0" encoding="ISO-8859-1"?>
|
2
2
|
<questestinterop xmlns="http://www.imsglobal.org/xsd/ims_qtiasiv1p2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.imsglobal.org/xsd/ims_qtiasiv1p2 http://www.imsglobal.org/xsd/ims_qtiasiv1p2p1.xsd">
|
3
|
-
<assessment title="1.2 Import Quiz" ident="A1001">
|
3
|
+
<assessment title="1.2 Import Quiz" ident="A1001" external_assignment_id="801785">
|
4
4
|
<section title="Main" ident="S1002">
|
5
5
|
<item title="Grading - specific - 3 pt score" ident="QUE_1003">
|
6
6
|
<presentation>
|
@@ -25,6 +25,12 @@ describe Qti::V1::Models::Assessment do
|
|
25
25
|
expect(loaded_class.identifier).to eq(expected_identifier)
|
26
26
|
end
|
27
27
|
end
|
28
|
+
|
29
|
+
describe '#external_assignment_id' do
|
30
|
+
it 'retruns the external_assignment_id' do
|
31
|
+
expect(loaded_class.external_assignment_id).to eq(expected_external_assignment_id)
|
32
|
+
end
|
33
|
+
end
|
28
34
|
end
|
29
35
|
|
30
36
|
shared_examples_for 'verify quiz items' do
|
@@ -43,6 +49,7 @@ describe Qti::V1::Models::Assessment do
|
|
43
49
|
let(:loaded_class) { described_class.from_path!(path) }
|
44
50
|
let(:expected_title) { '1.2 Import Quiz' }
|
45
51
|
let(:expected_identifier) { 'A1001' }
|
52
|
+
let(:expected_external_assignment_id) { '801785' }
|
46
53
|
let(:expected_item_count) { 5 }
|
47
54
|
|
48
55
|
include_examples('basic quiz fields')
|
@@ -52,6 +59,7 @@ describe Qti::V1::Models::Assessment do
|
|
52
59
|
let(:path) { File.join(fixtures_path, 'feedback_quiz_1.2.xml') }
|
53
60
|
let(:loaded_class) { described_class.from_path!(path) }
|
54
61
|
let(:expected_title) { 'I Can Haz Feedback' }
|
62
|
+
let(:expected_external_assignment_id) { nil }
|
55
63
|
let(:expected_identifier) { 'i618e88580f76f70a1ed28804f497df9c' }
|
56
64
|
let(:expected_item_count) { 3 }
|
57
65
|
let(:expected_item_data) do
|
@@ -82,6 +90,7 @@ describe Qti::V1::Models::Assessment do
|
|
82
90
|
let(:path) { File.join(fixtures_path, 'all_canvas_simple_1.2.xml') }
|
83
91
|
let(:loaded_class) { described_class.from_path!(path) }
|
84
92
|
let(:expected_title) { 'Every Canvas Interaction' }
|
93
|
+
let(:expected_external_assignment_id) { nil }
|
85
94
|
let(:expected_identifier) { 'ie09bc528e6ecd1cb9ebfafd940c20215' }
|
86
95
|
let(:expected_item_count) { 10 }
|
87
96
|
let(:expected_item_data) do
|
@@ -3,7 +3,7 @@ describe Qti::V1::Models::ObjectBank do
|
|
3
3
|
<<~XML
|
4
4
|
<?xml version="1.0" encoding="UTF-8"?>
|
5
5
|
<questestinterop xmlns="http://www.imsglobal.org/xsd/ims_qtiasiv1p2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.imsglobal.org/xsd/ims_qtiasiv1p2 http://www.imsglobal.org/xsd/ims_qtiasiv1p2p1.xsd">
|
6
|
-
<objectbank ident="gooblegobble12345">
|
6
|
+
<objectbank ident="gooblegobble12345" canvas_item_bank="true">
|
7
7
|
<qtimetadata>
|
8
8
|
<qtimetadatafield>
|
9
9
|
<fieldlabel>not_a_bank_title</fieldlabel>
|
@@ -57,6 +57,14 @@ describe Qti::V1::Models::ObjectBank do
|
|
57
57
|
end
|
58
58
|
end
|
59
59
|
|
60
|
+
describe '#canvas_item_bank' do
|
61
|
+
it 'returns the canvas_item_bank' do
|
62
|
+
allow(File).to receive(:read).and_return(doc)
|
63
|
+
objectbank = described_class.new path: '/etc/FakeBank008.xml'
|
64
|
+
expect(objectbank.canvas_item_bank).to eq 'true'
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
60
68
|
describe '#bank_type' do
|
61
69
|
it 'has the bank_type attribute' do
|
62
70
|
allow(File).to receive(:read).and_return(doc)
|
@@ -19,6 +19,10 @@ describe Qti::V2::Models::AssessmentTest do
|
|
19
19
|
expect(loaded_class.identifier).to eq 'SPECTATUS-GENERATED-TEST'
|
20
20
|
end
|
21
21
|
|
22
|
+
it 'has a nil external_assignment_id' do
|
23
|
+
expect(loaded_class.external_assignment_id).to be_nil
|
24
|
+
end
|
25
|
+
|
22
26
|
it 'gets dependency file refs' do
|
23
27
|
refs = loaded_class.assessment_items
|
24
28
|
expect(refs.all? { |ref| File.extname(ref[:path]) == '.xml' })
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: qti
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.23.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adrian Diaz
|
@@ -12,7 +12,7 @@ authors:
|
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date: 2024-
|
15
|
+
date: 2024-05-23 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: actionview
|