qti 0.5.16 → 0.6.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/models/base.rb +2 -0
- data/lib/qti/v1/models/interactions/ordering_interaction.rb +1 -1
- data/lib/qti/v2/models/interactions/choice_interaction.rb +1 -1
- data/lib/qti/v2/models/interactions/ordering_interaction.rb +21 -0
- data/spec/lib/qti/v1/models/assessment_item_spec.rb +0 -25
- data/spec/lib/qti/v1/models/interactions/ordering_interaction_spec.rb +21 -0
- data/spec/lib/qti/v2/models/interactions/ordering_interaction_spec.rb +19 -0
- metadata +7 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 57886adfeb2b4f8b5361015d6e65d8e3adce4c8b
|
4
|
+
data.tar.gz: c73d02a2133c28e31340396546c2ce9edf354334
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: afc5d77b25daab496548ee48b0d2c01af504ec302e8f59ef39e7c2707d7951ee0053419b85768ac06796fee22b542f61263b2d5e88f5777f97929c91346ddc6c
|
7
|
+
data.tar.gz: a34886dc856508a89116533ebd4a2552049f0d3175dcbf4ec18d02911949935654bf26d4c3ebb66738defd4a833ff8651e3bdae470fab078a05c7ec707689fb8
|
data/lib/qti/models/base.rb
CHANGED
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'qti/v2/models/interactions/choice_interaction'
|
2
|
+
|
3
|
+
module Qti
|
4
|
+
module V2
|
5
|
+
module Models
|
6
|
+
module Interactions
|
7
|
+
class OrderingInteraction < ChoiceInteraction
|
8
|
+
def self.matches(node)
|
9
|
+
match = node.at_xpath('.//xmlns:orderInteraction')
|
10
|
+
return false unless match.present?
|
11
|
+
new(node)
|
12
|
+
end
|
13
|
+
|
14
|
+
def shuffled?
|
15
|
+
node.at_xpath('.//xmlns:orderInteraction').attributes['shuffle']&.value&.downcase == 'true'
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -32,31 +32,6 @@ describe Qti::V1::Models::AssessmentItem do
|
|
32
32
|
expect(struct.first.values).to eq 'QUE_1006_A2'
|
33
33
|
expect(struct.first.rcardinality).to eq 'Single'
|
34
34
|
end
|
35
|
-
|
36
|
-
it 'grabs scoring data value for ordering questions' do
|
37
|
-
assessment = Qti::V1::Models::Assessment.from_path! 'spec/fixtures/items_1.2/ordering.xml'
|
38
|
-
assessment_item = described_class.new(assessment.assessment_items.first)
|
39
|
-
expect(assessment_item.scoring_data_structs.count).to eq 1
|
40
|
-
expect(assessment_item.scoring_data_structs.first.values).to eq %w(A B E D C)
|
41
|
-
end
|
42
|
-
|
43
|
-
it 'grabs scoring data value for matching questions' do
|
44
|
-
assessment = Qti::V1::Models::Assessment.from_path! 'spec/fixtures/items_1.2/matching.xml'
|
45
|
-
assessment_item = described_class.new(assessment.assessment_items.first)
|
46
|
-
expect(assessment_item.interaction_model.questions).to eq(
|
47
|
-
[{ id: 'question_1', question_body: 'Light Microscope' },
|
48
|
-
{ id: 'question_2', question_body: 'Electron Microscopes' }]
|
49
|
-
)
|
50
|
-
expect(assessment_item.scoring_data_structs.first.values).to eq(
|
51
|
-
'question_1' => 'Magnify up to about 400 times. Sometimes requires colored staining of cells.',
|
52
|
-
'question_2' => "Uses a beam of electrons. Can provide details of cells' internal structure."
|
53
|
-
)
|
54
|
-
expect(assessment_item.interaction_model.answers.map(&:item_body)).to eq(
|
55
|
-
['Magnify up to about 400 times. Sometimes requires colored staining of cells.',
|
56
|
-
"Uses a beam of electrons. Can provide details of cells' internal structure.",
|
57
|
-
'A distractor answer.']
|
58
|
-
)
|
59
|
-
end
|
60
35
|
end
|
61
36
|
|
62
37
|
it 'has the identifier used to identify it in manifest/test files' do
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Qti::V1::Models::Interactions::OrderingInteraction do
|
4
|
+
let(:file) { File.join('spec', 'fixtures', 'items_1.2', 'ordering.xml') }
|
5
|
+
let(:assessment) { Qti::V1::Models::Assessment.from_path!(file) }
|
6
|
+
let(:item) { assessment.assessment_items.first }
|
7
|
+
subject { described_class.new(item) }
|
8
|
+
|
9
|
+
describe '.matches' do
|
10
|
+
it 'matches the item in file' do
|
11
|
+
expect(described_class.matches(item)).to be_truthy
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
describe '#scoring_data_structs' do
|
16
|
+
it 'grabs scoring data value for ordering questions' do
|
17
|
+
assessment_item = described_class.new(assessment.assessment_items.first)
|
18
|
+
expect(assessment_item.scoring_data_structs.map(&:values)).to eq %w(A B E D C)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Qti::V2::Models::Interactions::OrderingInteraction do
|
4
|
+
let(:file) { File.join('spec', 'fixtures', 'items_2.1', 'order.xml') }
|
5
|
+
let(:item) { Qti::V2::Models::AssessmentItem.from_path!(file) }
|
6
|
+
subject { described_class.new(item.doc) }
|
7
|
+
|
8
|
+
describe '.matches' do
|
9
|
+
it 'matches the item in file' do
|
10
|
+
expect(described_class.matches(item.doc)).to be_truthy
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
describe '#scoring_data_structs' do
|
15
|
+
it 'grabs scoring data value for ordering questions' do
|
16
|
+
expect(subject.scoring_data_structs.map(&:values)).to eq ['DriverC', 'DriverA', 'DriverB']
|
17
|
+
end
|
18
|
+
end
|
19
|
+
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: 0.
|
4
|
+
version: 0.6.0
|
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: 2017-
|
12
|
+
date: 2017-06-01 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|
@@ -244,6 +244,7 @@ files:
|
|
244
244
|
- lib/qti/v2/models/interactions/match_interaction.rb
|
245
245
|
- lib/qti/v2/models/interactions/match_item_tag_processors/associate_interaction_tag_processor.rb
|
246
246
|
- lib/qti/v2/models/interactions/match_item_tag_processors/match_interaction_tag_processor.rb
|
247
|
+
- lib/qti/v2/models/interactions/ordering_interaction.rb
|
247
248
|
- lib/qti/v2/models/scoring_data.rb
|
248
249
|
- spec/fixtures/items_1.2/choice.xml
|
249
250
|
- spec/fixtures/items_1.2/essay.xml
|
@@ -442,6 +443,7 @@ files:
|
|
442
443
|
- spec/lib/qti/v1/models/interactions/choice_interaction_spec.rb
|
443
444
|
- spec/lib/qti/v1/models/interactions/fill_blank_interaction_spec.rb
|
444
445
|
- spec/lib/qti/v1/models/interactions/match_interaction_spec.rb
|
446
|
+
- spec/lib/qti/v1/models/interactions/ordering_interaction_spec.rb
|
445
447
|
- spec/lib/qti/v1/models/interactions/string_interaction_spec.rb
|
446
448
|
- spec/lib/qti/v2/models/assessment_item_spec.rb
|
447
449
|
- spec/lib/qti/v2/models/assessment_test_spec.rb
|
@@ -453,6 +455,7 @@ files:
|
|
453
455
|
- spec/lib/qti/v2/models/interactions/extended_text_interaction_spec.rb
|
454
456
|
- spec/lib/qti/v2/models/interactions/gap_match_interaction_spec.rb
|
455
457
|
- spec/lib/qti/v2/models/interactions/match_interaction_spec.rb
|
458
|
+
- spec/lib/qti/v2/models/interactions/ordering_interaction_spec.rb
|
456
459
|
- spec/lib/qti_spec.rb
|
457
460
|
- spec/spec_helper.rb
|
458
461
|
- spec/support/custom_matchers.rb
|
@@ -678,6 +681,7 @@ test_files:
|
|
678
681
|
- spec/lib/qti/v1/models/interactions/choice_interaction_spec.rb
|
679
682
|
- spec/lib/qti/v1/models/interactions/fill_blank_interaction_spec.rb
|
680
683
|
- spec/lib/qti/v1/models/interactions/match_interaction_spec.rb
|
684
|
+
- spec/lib/qti/v1/models/interactions/ordering_interaction_spec.rb
|
681
685
|
- spec/lib/qti/v1/models/interactions/string_interaction_spec.rb
|
682
686
|
- spec/lib/qti/v2/models/assessment_item_spec.rb
|
683
687
|
- spec/lib/qti/v2/models/assessment_test_spec.rb
|
@@ -689,6 +693,7 @@ test_files:
|
|
689
693
|
- spec/lib/qti/v2/models/interactions/extended_text_interaction_spec.rb
|
690
694
|
- spec/lib/qti/v2/models/interactions/gap_match_interaction_spec.rb
|
691
695
|
- spec/lib/qti/v2/models/interactions/match_interaction_spec.rb
|
696
|
+
- spec/lib/qti/v2/models/interactions/ordering_interaction_spec.rb
|
692
697
|
- spec/lib/qti_spec.rb
|
693
698
|
- spec/spec_helper.rb
|
694
699
|
- spec/support/custom_matchers.rb
|