qti 0.5.16 → 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|