qti 2.0.0 → 2.4.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.
Files changed (31) hide show
  1. checksums.yaml +5 -5
  2. data/lib/qti.rb +1 -0
  3. data/lib/qti/models/assessment_meta.rb +78 -3
  4. data/lib/qti/models/resource.rb +26 -2
  5. data/lib/qti/v1/models/interactions/base_fill_blank_interaction.rb +33 -1
  6. data/lib/qti/v1/models/interactions/canvas_multiple_dropdown.rb +2 -29
  7. data/lib/qti/v1/models/object_bank.rb +14 -0
  8. data/lib/qti/version.rb +1 -1
  9. data/spec/fixtures/items_1.2/canvas_multiple_fib_extra_brackets.xml +244 -0
  10. data/spec/fixtures/test_qti_1.2_canvas_extended_1/gba044ae1fc7cfd3dc413e0df695e0068/assessment_meta.xml +76 -0
  11. data/spec/fixtures/test_qti_1.2_canvas_extended_1/gba044ae1fc7cfd3dc413e0df695e0068/gba044ae1fc7cfd3dc413e0df695e0068.xml +17 -0
  12. data/spec/fixtures/test_qti_1.2_canvas_extended_1/imsmanifest.xml +39 -0
  13. data/spec/fixtures/test_qti_1.2_canvas_extended_2/gba044ae1fc7cfd3dc413e0df695e0068/assessment_meta.xml +76 -0
  14. data/spec/fixtures/test_qti_1.2_canvas_extended_2/gba044ae1fc7cfd3dc413e0df695e0068/gba044ae1fc7cfd3dc413e0df695e0068.xml +17 -0
  15. data/spec/fixtures/test_qti_1.2_canvas_extended_2/imsmanifest.xml +39 -0
  16. data/spec/fixtures/with_banks/g9a20cf3af178b54e4792cbe992f65790/assessment_meta.xml +69 -0
  17. data/spec/fixtures/with_banks/g9a20cf3af178b54e4792cbe992f65790/assessment_qti.xml +99 -0
  18. data/spec/fixtures/with_banks/imsmanifest.xml +54 -0
  19. data/spec/fixtures/with_banks/non_cc_assessments/g195e078fb6e3c4054e38e5c9226287ba.xml.qti +85 -0
  20. data/spec/fixtures/with_banks/non_cc_assessments/g9a20cf3af178b54e4792cbe992f65790.xml.qti +107 -0
  21. data/spec/fixtures/with_banks/non_cc_assessments/gab22de457404cb5cf022078f1e4da75e.xml.qti +59 -0
  22. data/spec/fixtures/with_banks/non_cc_assessments/gf3edf8167be16b3a65a00ca923132b07.xml.qti +145 -0
  23. data/spec/lib/qti/models/assessment_meta_spec.rb +104 -2
  24. data/spec/lib/qti/models/resource_spec.rb +14 -0
  25. data/spec/lib/qti/v1/models/interactions/base_fill_blank_interaction_spec.rb +146 -0
  26. data/spec/lib/qti/v1/models/interactions/canvas_multiple_dropdown_spec.rb +0 -27
  27. data/spec/lib/qti/v1/models/object_bank_spec.rb +39 -0
  28. metadata +38 -12
  29. data/spec/gemfiles/nokogiri-1.6.gemfile.lock +0 -149
  30. data/spec/gemfiles/nokogiri-1.8.gemfile.lock +0 -149
  31. data/spec/gemfiles/rails-5.2.gemfile.lock +0 -222
@@ -48,4 +48,18 @@ describe Qti::Models::Manifest do
48
48
  expect(assessment_test.assessment_items.first[:resource]).not_to eq(nil)
49
49
  end
50
50
  end
51
+
52
+ describe 'object banks' do
53
+ file = File.join(fixtures_path, 'with_banks/imsmanifest.xml')
54
+ manifest = described_class.from_path!(file)
55
+
56
+ it 'has associated content' do
57
+ expect(manifest.associated_content_list.count).to eq(4)
58
+ end
59
+
60
+ it 'loads objectbanks' do
61
+ expect(manifest.objectbanks.count).to eq(3)
62
+ expect(manifest.objectbanks.first).to be_kind_of(Qti::V1::Models::ObjectBank)
63
+ end
64
+ end
51
65
  end
@@ -0,0 +1,146 @@
1
+ describe Qti::V1::Models::Interactions::BaseFillBlankInteraction do
2
+ let(:fixtures_path) { File.join('spec', 'fixtures', 'items_1.2') }
3
+ let(:test_object) { Qti::V1::Models::Assessment.from_path!(file_path) }
4
+ let(:assessment_item_refs) { test_object.assessment_items }
5
+ let(:loaded_class) { described_class.new(assessment_item_refs.first, test_object) }
6
+
7
+ shared_examples_for 'canvas_fib_responses' do
8
+ it 'returns the canvas_fib_responses' do
9
+ expect(loaded_class.canvas_fib_responses).to eq(expected_blanks)
10
+ end
11
+ end
12
+
13
+ context 'canvas_multiple_dropdowns.xml' do
14
+ let(:file_path) { File.join(fixtures_path, 'canvas_multiple_dropdowns.xml') }
15
+ let(:expected_blanks) do
16
+ [
17
+ {
18
+ id: 'response_color1',
19
+ choices:
20
+ [
21
+ { id: '6548', position: 2, item_body: 'red' },
22
+ { id: '5550', position: 3, item_body: 'plaid' }
23
+ ]
24
+ },
25
+ {
26
+ id: 'response_color2',
27
+ choices:
28
+ [
29
+ { id: '6951', position: 2, item_body: 'blue' },
30
+ { id: '4500', position: 3, item_body: 'paisely' }
31
+ ]
32
+ }
33
+ ]
34
+ end
35
+
36
+ include_examples 'canvas_fib_responses'
37
+ end
38
+
39
+ context 'canvas_multiple_fib.xml' do
40
+ let(:file_path) { File.join(fixtures_path, 'canvas_multiple_fib.xml') }
41
+ let(:expected_blanks) do
42
+ [
43
+ {
44
+ id: 'response_color1',
45
+ choices:
46
+ [
47
+ { id: '9799', item_body: 'red', position: 2 },
48
+ { id: '5231', item_body: 'Red', position: 3 }
49
+ ]
50
+ },
51
+ {
52
+ id: 'response_color2',
53
+ choices:
54
+ [
55
+ { id: '5939', item_body: 'blue', position: 2 },
56
+ { id: '6364', item_body: 'Blue', position: 3 }
57
+ ]
58
+ }
59
+ ]
60
+ end
61
+
62
+ include_examples 'canvas_fib_responses'
63
+ end
64
+
65
+ context 'canvas multiple fill in the blank questions with a single blank' do
66
+ let(:file_path) { File.join(fixtures_path, 'canvas_multiple_fib_as_single.xml') }
67
+ let(:expected_blanks) do
68
+ [
69
+ {
70
+ id: 'response_word',
71
+ choices:
72
+ [
73
+ { id: '3537', item_body: 'word', position: 2 }
74
+ ]
75
+ }
76
+ ]
77
+ end
78
+
79
+ include_examples 'canvas_fib_responses'
80
+ end
81
+
82
+ context 'canvas multiple fill in the blank questions with a single blank' do
83
+ let(:file_path) { File.join(fixtures_path, 'canvas_multiple_fib_extra_brackets.xml') }
84
+ let(:expected_blanks) do
85
+ [
86
+ {
87
+ id: 'response_1',
88
+ choices:
89
+ [
90
+ { id: '8464', item_body: 'A', position: 2 },
91
+ { id: '265', item_body: 'B', position: 3 },
92
+ { id: '3002', item_body: 'C', position: 4 },
93
+ { id: '1356', item_body: 'D', position: 5 },
94
+ { id: '5614', item_body: 'E', position: 6 }
95
+ ]
96
+ },
97
+ {
98
+ id: 'response_2',
99
+ choices:
100
+ [
101
+ { id: '4002', item_body: 'A', position: 2 },
102
+ { id: '8630', item_body: 'B', position: 3 },
103
+ { id: '7844', item_body: 'C', position: 4 },
104
+ { id: '3602', item_body: 'D', position: 5 },
105
+ { id: '9525', item_body: 'E', position: 6 }
106
+ ]
107
+ },
108
+ {
109
+ id: 'response_3',
110
+ choices:
111
+ [
112
+ { id: '8390', item_body: 'A', position: 2 },
113
+ { id: '8745', item_body: 'B', position: 3 },
114
+ { id: '3760', item_body: 'C', position: 4 },
115
+ { id: '7542', item_body: 'D', position: 5 },
116
+ { id: '1523', item_body: 'E', position: 6 }
117
+ ]
118
+ },
119
+ {
120
+ id: 'response_4',
121
+ choices:
122
+ [
123
+ { id: '3317', item_body: 'A', position: 2 },
124
+ { id: '6768', item_body: 'B', position: 3 },
125
+ { id: '5823', item_body: 'C', position: 4 },
126
+ { id: '2492', item_body: 'D', position: 5 },
127
+ { id: '4494', item_body: 'E', position: 6 }
128
+ ]
129
+ },
130
+ {
131
+ id: 'response_5',
132
+ choices:
133
+ [
134
+ { id: '6742', item_body: 'A', position: 2 },
135
+ { id: '794', item_body: 'B', position: 3 },
136
+ { id: '4259', item_body: 'C', position: 4 },
137
+ { id: '4851', item_body: 'D', position: 5 },
138
+ { id: '8574', item_body: 'E', position: 6 }
139
+ ]
140
+ }
141
+ ]
142
+ end
143
+
144
+ include_examples 'canvas_fib_responses'
145
+ end
146
+ end
@@ -10,12 +10,6 @@ describe Qti::V1::Models::Interactions::CanvasMultipleDropdownInteraction do
10
10
  end
11
11
  end
12
12
 
13
- shared_examples_for 'blanks' do
14
- it 'returns the blanks' do
15
- expect(loaded_class.blanks).to eq(expected_blanks)
16
- end
17
- end
18
-
19
13
  shared_examples_for 'answers' do
20
14
  it 'returns the answers' do
21
15
  expect(loaded_class.answers.count).to eq answer_count
@@ -47,26 +41,6 @@ describe Qti::V1::Models::Interactions::CanvasMultipleDropdownInteraction do
47
41
  { id: '6951', position: 2, item_body: 'blue' }
48
42
  ]
49
43
  end
50
- let(:expected_blanks) do
51
- [
52
- {
53
- id: 'response_color1',
54
- choices:
55
- [
56
- { id: '6548', position: 2, item_body: 'red' },
57
- { id: '5550', position: 3, item_body: 'plaid' }
58
- ]
59
- },
60
- {
61
- id: 'response_color2',
62
- choices:
63
- [
64
- { id: '6951', position: 2, item_body: 'blue' },
65
- { id: '4500', position: 3, item_body: 'paisely' }
66
- ]
67
- }
68
- ]
69
- end
70
44
  let(:expected_stem_items) do
71
45
  [
72
46
  { id: 'stem_0', position: 1, type: 'text', value: '<div><p>Roses are ' },
@@ -97,7 +71,6 @@ describe Qti::V1::Models::Interactions::CanvasMultipleDropdownInteraction do
97
71
 
98
72
  include_examples 'shuffled?'
99
73
  include_examples 'answers'
100
- include_examples 'blanks'
101
74
  include_examples 'stem_items'
102
75
  include_examples 'scoring_data_structs'
103
76
  end
@@ -0,0 +1,39 @@
1
+ describe Qti::V1::Models::ObjectBank do
2
+ describe 'bank loading' do
3
+ [
4
+ 'gf3edf8167be16b3a65a00ca923132b07.xml.qti',
5
+ 'g195e078fb6e3c4054e38e5c9226287ba.xml.qti',
6
+ 'gab22de457404cb5cf022078f1e4da75e.xml.qti'
7
+ ].each do |bankfile|
8
+ file = File.join('spec', 'fixtures', 'with_banks', 'non_cc_assessments', bankfile)
9
+ context "File: #{file}" do
10
+ it 'parses the objectbank without error' do
11
+ expect do
12
+ bank = described_class.from_path!(file)
13
+ expect(bank.assessment_items) # at least one
14
+ end.not_to raise_error
15
+ end
16
+ end
17
+ end
18
+ end
19
+
20
+ describe '#title' do
21
+ it 'missing bank_title defaults to filename' do
22
+ allow(File).to receive(:read).and_return(<<~XML)
23
+ <?xml version="1.0" encoding="UTF-8"?>
24
+ <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">
25
+ <objectbank ident="gooblegobble12345">
26
+ <qtimetadata>
27
+ <qtimetadatafield>
28
+ <fieldlabel>not_a_bank_title</fieldlabel>
29
+ <fieldentry>A different metadata entry</fieldentry>
30
+ </qtimetadatafield>
31
+ </qtimetadata>
32
+ </objectbank>
33
+ </questestinterop>
34
+ XML
35
+ objectbank = described_class.new path: '/etc/FakeBank007.xml'
36
+ expect(objectbank.title).to eq 'FakeBank007'
37
+ end
38
+ end
39
+ end
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.0.0
4
+ version: 2.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hannah Bottalla
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2019-10-02 00:00:00.000000000 Z
12
+ date: 2020-10-02 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: actionview
@@ -113,14 +113,14 @@ dependencies:
113
113
  requirements:
114
114
  - - "~>"
115
115
  - !ruby/object:Gem::Version
116
- version: '1.2'
116
+ version: '2.0'
117
117
  type: :runtime
118
118
  prerelease: false
119
119
  version_requirements: !ruby/object:Gem::Requirement
120
120
  requirements:
121
121
  - - "~>"
122
122
  - !ruby/object:Gem::Version
123
- version: '1.2'
123
+ version: '2.0'
124
124
  - !ruby/object:Gem::Dependency
125
125
  name: sanitize
126
126
  requirement: !ruby/object:Gem::Requirement
@@ -312,6 +312,7 @@ files:
312
312
  - lib/qti/v1/models/numerics/scoring_data.rb
313
313
  - lib/qti/v1/models/numerics/scoring_node.rb
314
314
  - lib/qti/v1/models/numerics/within_range.rb
315
+ - lib/qti/v1/models/object_bank.rb
315
316
  - lib/qti/v1/models/question_group.rb
316
317
  - lib/qti/v1/models/scoring_data.rb
317
318
  - lib/qti/v1/models/stimulus_item.rb
@@ -355,6 +356,7 @@ files:
355
356
  - spec/fixtures/items_1.2/canvas_multiple_dropdowns.xml
356
357
  - spec/fixtures/items_1.2/canvas_multiple_fib.xml
357
358
  - spec/fixtures/items_1.2/canvas_multiple_fib_as_single.xml
359
+ - spec/fixtures/items_1.2/canvas_multiple_fib_extra_brackets.xml
358
360
  - spec/fixtures/items_1.2/choice.xml
359
361
  - spec/fixtures/items_1.2/essay.xml
360
362
  - spec/fixtures/items_1.2/fib.xml
@@ -510,6 +512,12 @@ files:
510
512
  - spec/fixtures/test_qti_1.2_canvas/i00f37ac2af026e5a607e4a5d9a70b1d5/assessment_meta.xml
511
513
  - spec/fixtures/test_qti_1.2_canvas/i00f37ac2af026e5a607e4a5d9a70b1d5/i00f37ac2af026e5a607e4a5d9a70b1d5.xml
512
514
  - spec/fixtures/test_qti_1.2_canvas/imsmanifest.xml
515
+ - spec/fixtures/test_qti_1.2_canvas_extended_1/gba044ae1fc7cfd3dc413e0df695e0068/assessment_meta.xml
516
+ - spec/fixtures/test_qti_1.2_canvas_extended_1/gba044ae1fc7cfd3dc413e0df695e0068/gba044ae1fc7cfd3dc413e0df695e0068.xml
517
+ - spec/fixtures/test_qti_1.2_canvas_extended_1/imsmanifest.xml
518
+ - spec/fixtures/test_qti_1.2_canvas_extended_2/gba044ae1fc7cfd3dc413e0df695e0068/assessment_meta.xml
519
+ - spec/fixtures/test_qti_1.2_canvas_extended_2/gba044ae1fc7cfd3dc413e0df695e0068/gba044ae1fc7cfd3dc413e0df695e0068.xml
520
+ - spec/fixtures/test_qti_1.2_canvas_extended_2/imsmanifest.xml
513
521
  - spec/fixtures/test_qti_1.2_multi/i913965373124f56ca136e87deb040c03/assessment_meta.xml
514
522
  - spec/fixtures/test_qti_1.2_multi/i913965373124f56ca136e87deb040c03/i913965373124f56ca136e87deb040c03.xml
515
523
  - spec/fixtures/test_qti_1.2_multi/ife643a8a04b48b22acab95de6c01f1cc/assessment_meta.xml
@@ -598,11 +606,15 @@ files:
598
606
  - spec/fixtures/tests/tests/rtest26.xml
599
607
  - spec/fixtures/tests/tests/rtest27.xml
600
608
  - spec/fixtures/unsupported_version/imsmanifest.xml
601
- - spec/gemfiles/nokogiri-1.6.gemfile.lock
602
- - spec/gemfiles/nokogiri-1.8.gemfile.lock
609
+ - spec/fixtures/with_banks/g9a20cf3af178b54e4792cbe992f65790/assessment_meta.xml
610
+ - spec/fixtures/with_banks/g9a20cf3af178b54e4792cbe992f65790/assessment_qti.xml
611
+ - spec/fixtures/with_banks/imsmanifest.xml
612
+ - spec/fixtures/with_banks/non_cc_assessments/g195e078fb6e3c4054e38e5c9226287ba.xml.qti
613
+ - spec/fixtures/with_banks/non_cc_assessments/g9a20cf3af178b54e4792cbe992f65790.xml.qti
614
+ - spec/fixtures/with_banks/non_cc_assessments/gab22de457404cb5cf022078f1e4da75e.xml.qti
615
+ - spec/fixtures/with_banks/non_cc_assessments/gf3edf8167be16b3a65a00ca923132b07.xml.qti
603
616
  - spec/gemfiles/rails-5.1.gemfile
604
617
  - spec/gemfiles/rails-5.2.gemfile
605
- - spec/gemfiles/rails-5.2.gemfile.lock
606
618
  - spec/gemfiles/rails-6.0.gemfile
607
619
  - spec/lib/qti/assessment_item_exporter_spec.rb
608
620
  - spec/lib/qti/exporter_spec.rb
@@ -615,6 +627,7 @@ files:
615
627
  - spec/lib/qti/v1/models/assessment_spec.rb
616
628
  - spec/lib/qti/v1/models/choices/fill_blank_choice_spec.rb
617
629
  - spec/lib/qti/v1/models/choices/logical_identifier_choice_spec.rb
630
+ - spec/lib/qti/v1/models/interactions/base_fill_blank_interaction_spec.rb
618
631
  - spec/lib/qti/v1/models/interactions/base_interaction_spec.rb
619
632
  - spec/lib/qti/v1/models/interactions/canvas_multiple_dropdown_spec.rb
620
633
  - spec/lib/qti/v1/models/interactions/choice_interaction_spec.rb
@@ -632,6 +645,7 @@ files:
632
645
  - spec/lib/qti/v1/models/numerics/scoring_base_spec.rb
633
646
  - spec/lib/qti/v1/models/numerics/scoring_node_spec.rb
634
647
  - spec/lib/qti/v1/models/numerics/within_range_spec.rb
648
+ - spec/lib/qti/v1/models/object_bank_spec.rb
635
649
  - spec/lib/qti/v1/models/question_group_spec.rb
636
650
  - spec/lib/qti/v1/models/stimulus_item_spec.rb
637
651
  - spec/lib/qti/v2/models/assessment_item_spec.rb
@@ -671,8 +685,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
671
685
  - !ruby/object:Gem::Version
672
686
  version: '0'
673
687
  requirements: []
674
- rubyforge_project:
675
- rubygems_version: 2.5.2.3
688
+ rubygems_version: 3.0.3
676
689
  signing_key:
677
690
  specification_version: 4
678
691
  summary: QTI 1.2 and 2.1 import and export models
@@ -695,6 +708,7 @@ test_files:
695
708
  - spec/fixtures/items_1.2/canvas_multiple_dropdowns.xml
696
709
  - spec/fixtures/items_1.2/canvas_multiple_fib.xml
697
710
  - spec/fixtures/items_1.2/canvas_multiple_fib_as_single.xml
711
+ - spec/fixtures/items_1.2/canvas_multiple_fib_extra_brackets.xml
698
712
  - spec/fixtures/items_1.2/choice.xml
699
713
  - spec/fixtures/items_1.2/essay.xml
700
714
  - spec/fixtures/items_1.2/fib.xml
@@ -850,6 +864,12 @@ test_files:
850
864
  - spec/fixtures/test_qti_1.2_canvas/i00f37ac2af026e5a607e4a5d9a70b1d5/assessment_meta.xml
851
865
  - spec/fixtures/test_qti_1.2_canvas/i00f37ac2af026e5a607e4a5d9a70b1d5/i00f37ac2af026e5a607e4a5d9a70b1d5.xml
852
866
  - spec/fixtures/test_qti_1.2_canvas/imsmanifest.xml
867
+ - spec/fixtures/test_qti_1.2_canvas_extended_1/gba044ae1fc7cfd3dc413e0df695e0068/assessment_meta.xml
868
+ - spec/fixtures/test_qti_1.2_canvas_extended_1/gba044ae1fc7cfd3dc413e0df695e0068/gba044ae1fc7cfd3dc413e0df695e0068.xml
869
+ - spec/fixtures/test_qti_1.2_canvas_extended_1/imsmanifest.xml
870
+ - spec/fixtures/test_qti_1.2_canvas_extended_2/gba044ae1fc7cfd3dc413e0df695e0068/assessment_meta.xml
871
+ - spec/fixtures/test_qti_1.2_canvas_extended_2/gba044ae1fc7cfd3dc413e0df695e0068/gba044ae1fc7cfd3dc413e0df695e0068.xml
872
+ - spec/fixtures/test_qti_1.2_canvas_extended_2/imsmanifest.xml
853
873
  - spec/fixtures/test_qti_1.2_multi/i913965373124f56ca136e87deb040c03/assessment_meta.xml
854
874
  - spec/fixtures/test_qti_1.2_multi/i913965373124f56ca136e87deb040c03/i913965373124f56ca136e87deb040c03.xml
855
875
  - spec/fixtures/test_qti_1.2_multi/ife643a8a04b48b22acab95de6c01f1cc/assessment_meta.xml
@@ -938,11 +958,15 @@ test_files:
938
958
  - spec/fixtures/tests/tests/rtest26.xml
939
959
  - spec/fixtures/tests/tests/rtest27.xml
940
960
  - spec/fixtures/unsupported_version/imsmanifest.xml
941
- - spec/gemfiles/nokogiri-1.6.gemfile.lock
942
- - spec/gemfiles/nokogiri-1.8.gemfile.lock
961
+ - spec/fixtures/with_banks/g9a20cf3af178b54e4792cbe992f65790/assessment_meta.xml
962
+ - spec/fixtures/with_banks/g9a20cf3af178b54e4792cbe992f65790/assessment_qti.xml
963
+ - spec/fixtures/with_banks/imsmanifest.xml
964
+ - spec/fixtures/with_banks/non_cc_assessments/g195e078fb6e3c4054e38e5c9226287ba.xml.qti
965
+ - spec/fixtures/with_banks/non_cc_assessments/g9a20cf3af178b54e4792cbe992f65790.xml.qti
966
+ - spec/fixtures/with_banks/non_cc_assessments/gab22de457404cb5cf022078f1e4da75e.xml.qti
967
+ - spec/fixtures/with_banks/non_cc_assessments/gf3edf8167be16b3a65a00ca923132b07.xml.qti
943
968
  - spec/gemfiles/rails-5.1.gemfile
944
969
  - spec/gemfiles/rails-5.2.gemfile
945
- - spec/gemfiles/rails-5.2.gemfile.lock
946
970
  - spec/gemfiles/rails-6.0.gemfile
947
971
  - spec/lib/qti/assessment_item_exporter_spec.rb
948
972
  - spec/lib/qti/exporter_spec.rb
@@ -955,6 +979,7 @@ test_files:
955
979
  - spec/lib/qti/v1/models/assessment_spec.rb
956
980
  - spec/lib/qti/v1/models/choices/fill_blank_choice_spec.rb
957
981
  - spec/lib/qti/v1/models/choices/logical_identifier_choice_spec.rb
982
+ - spec/lib/qti/v1/models/interactions/base_fill_blank_interaction_spec.rb
958
983
  - spec/lib/qti/v1/models/interactions/base_interaction_spec.rb
959
984
  - spec/lib/qti/v1/models/interactions/canvas_multiple_dropdown_spec.rb
960
985
  - spec/lib/qti/v1/models/interactions/choice_interaction_spec.rb
@@ -972,6 +997,7 @@ test_files:
972
997
  - spec/lib/qti/v1/models/numerics/scoring_base_spec.rb
973
998
  - spec/lib/qti/v1/models/numerics/scoring_node_spec.rb
974
999
  - spec/lib/qti/v1/models/numerics/within_range_spec.rb
1000
+ - spec/lib/qti/v1/models/object_bank_spec.rb
975
1001
  - spec/lib/qti/v1/models/question_group_spec.rb
976
1002
  - spec/lib/qti/v1/models/stimulus_item_spec.rb
977
1003
  - spec/lib/qti/v2/models/assessment_item_spec.rb
@@ -1,149 +0,0 @@
1
- PATH
2
- remote: ../..
3
- specs:
4
- mathml2latex (0.1.1)
5
- activesupport (>= 4.2.9, < 5.2)
6
- nokogiri (>= 1.6.8)
7
- qti (0.9.12)
8
- actionview (>= 4.2.0)
9
- activesupport (>= 4.2.9, < 5.2)
10
- dry-struct (~> 0.2.1)
11
- dry-types (~> 0.12.0)
12
- mathml2latex (>= 0.1.0)
13
- nokogiri (>= 1.6.8, < 1.9)
14
- rubyzip (~> 1.2)
15
- sanitize (>= 4.2.0, < 5.0)
16
-
17
- GEM
18
- remote: https://rubygems.org/
19
- specs:
20
- actionview (5.1.5)
21
- activesupport (= 5.1.5)
22
- builder (~> 3.1)
23
- erubi (~> 1.4)
24
- rails-dom-testing (~> 2.0)
25
- rails-html-sanitizer (~> 1.0, >= 1.0.3)
26
- activesupport (5.1.5)
27
- concurrent-ruby (~> 1.0, >= 1.0.2)
28
- i18n (~> 0.7)
29
- minitest (~> 5.1)
30
- tzinfo (~> 1.1)
31
- ast (2.4.0)
32
- builder (3.2.3)
33
- byebug (9.1.0)
34
- coderay (1.1.2)
35
- concurrent-ruby (1.0.5)
36
- crass (1.0.3)
37
- diff-lcs (1.3)
38
- docile (1.3.0)
39
- dry-configurable (0.7.0)
40
- concurrent-ruby (~> 1.0)
41
- dry-container (0.6.0)
42
- concurrent-ruby (~> 1.0)
43
- dry-configurable (~> 0.1, >= 0.1.3)
44
- dry-core (0.4.5)
45
- concurrent-ruby (~> 1.0)
46
- dry-equalizer (0.2.0)
47
- dry-logic (0.4.2)
48
- dry-container (~> 0.2, >= 0.2.6)
49
- dry-core (~> 0.2)
50
- dry-equalizer (~> 0.2)
51
- dry-struct (0.2.1)
52
- dry-configurable (~> 0.1)
53
- dry-equalizer (~> 0.2)
54
- dry-types (~> 0.9, >= 0.9.0)
55
- ice_nine (~> 0.11)
56
- dry-types (0.12.2)
57
- concurrent-ruby (~> 1.0)
58
- dry-configurable (~> 0.1)
59
- dry-container (~> 0.3)
60
- dry-core (~> 0.2, >= 0.2.1)
61
- dry-equalizer (~> 0.2)
62
- dry-logic (~> 0.4, >= 0.4.2)
63
- inflecto (~> 0.0.0, >= 0.0.2)
64
- erubi (1.7.1)
65
- i18n (0.9.5)
66
- concurrent-ruby (~> 1.0)
67
- ice_nine (0.11.2)
68
- inflecto (0.0.2)
69
- json (2.1.0)
70
- loofah (2.2.2)
71
- crass (~> 1.0.2)
72
- nokogiri (>= 1.5.9)
73
- method_source (0.9.0)
74
- mini_portile2 (2.1.0)
75
- minitest (5.11.3)
76
- nokogiri (1.6.8.1)
77
- mini_portile2 (~> 2.1.0)
78
- nokogumbo (1.5.0)
79
- nokogiri
80
- parallel (1.12.1)
81
- parser (2.5.0.5)
82
- ast (~> 2.4.0)
83
- powerpack (0.1.1)
84
- pry (0.11.3)
85
- coderay (~> 1.1.0)
86
- method_source (~> 0.9.0)
87
- rails-dom-testing (2.0.3)
88
- activesupport (>= 4.2.0)
89
- nokogiri (>= 1.6)
90
- rails-html-sanitizer (1.0.4)
91
- loofah (~> 2.2, >= 2.2.2)
92
- rainbow (2.2.2)
93
- rake
94
- rake (0.9.6)
95
- rspec (3.7.0)
96
- rspec-core (~> 3.7.0)
97
- rspec-expectations (~> 3.7.0)
98
- rspec-mocks (~> 3.7.0)
99
- rspec-core (3.7.1)
100
- rspec-support (~> 3.7.0)
101
- rspec-expectations (3.7.0)
102
- diff-lcs (>= 1.2.0, < 2.0)
103
- rspec-support (~> 3.7.0)
104
- rspec-mocks (3.7.0)
105
- diff-lcs (>= 1.2.0, < 2.0)
106
- rspec-support (~> 3.7.0)
107
- rspec-support (3.7.1)
108
- rubocop (0.50.0)
109
- parallel (~> 1.10)
110
- parser (>= 2.3.3.1, < 3.0)
111
- powerpack (~> 0.1)
112
- rainbow (>= 2.2.2, < 3.0)
113
- ruby-progressbar (~> 1.7)
114
- unicode-display_width (~> 1.0, >= 1.0.1)
115
- ruby-progressbar (1.9.0)
116
- rubyzip (1.2.1)
117
- sanitize (4.6.4)
118
- crass (~> 1.0.2)
119
- nokogiri (>= 1.4.4)
120
- nokogumbo (~> 1.4)
121
- simplecov (0.16.1)
122
- docile (~> 1.1)
123
- json (>= 1.8, < 3)
124
- simplecov-html (~> 0.10.0)
125
- simplecov-html (0.10.2)
126
- thread_safe (0.3.6)
127
- tzinfo (1.2.5)
128
- thread_safe (~> 0.1)
129
- unicode-display_width (1.3.0)
130
- wwtd (1.3.0)
131
-
132
- PLATFORMS
133
- ruby
134
-
135
- DEPENDENCIES
136
- bundler (~> 1.15)
137
- byebug (~> 9.0)
138
- nokogiri (~> 1.6.8)
139
- pry (~> 0)
140
- qti!
141
- rake (~> 0)
142
- rspec (~> 3.6)
143
- rspec-mocks (~> 3.6)
144
- rubocop (~> 0.50.0)
145
- simplecov (~> 0)
146
- wwtd (~> 1.3)
147
-
148
- BUNDLED WITH
149
- 1.16.1