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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4883be4fd0b3c4f0f662068c6b7d42e2cfee0645
4
- data.tar.gz: 262e1f6ad0e5d3d80c844d30084bcb6eb461fcf0
3
+ metadata.gz: 57886adfeb2b4f8b5361015d6e65d8e3adce4c8b
4
+ data.tar.gz: c73d02a2133c28e31340396546c2ce9edf354334
5
5
  SHA512:
6
- metadata.gz: beddd3cfcec82686646a5635773414d32502f58ea993719afb175f4ca9adaeed7ee9f6a622016618497a0a6f474915a0ff205d80fd0984f610ce1093675270ba
7
- data.tar.gz: 81bc3c599b5c15b0c1437d1abf2fe985676d1f9d2ec2e433f5be5d1cac458822a113eb1e5e6290d995315a05984cf541a89453e4a900597bd5fc5d799762184b
6
+ metadata.gz: afc5d77b25daab496548ee48b0d2c01af504ec302e8f59ef39e7c2707d7951ee0053419b85768ac06796fee22b542f61263b2d5e88f5777f97929c91346ddc6c
7
+ data.tar.gz: a34886dc856508a89116533ebd4a2552049f0d3175dcbf4ec18d02911949935654bf26d4c3ebb66738defd4a833ff8651e3bdae470fab078a05c7ec707689fb8
@@ -8,6 +8,8 @@ module Qti
8
8
 
9
9
  module Models
10
10
  class Base
11
+ attr_reader :doc
12
+
11
13
  ELEMENTS_REMAP = {
12
14
  'prompt' => 'div',
13
15
  'simpleBlock' => 'div',
@@ -14,7 +14,7 @@ module Qti
14
14
 
15
15
  def scoring_data_structs
16
16
  correct_order = node.xpath('.//xmlns:varequal').map(&:content)
17
- [ScoringData.new(correct_order, rcardinality)]
17
+ correct_order.map { |id| ScoringData.new(id, rcardinality) }
18
18
  end
19
19
  end
20
20
  end
@@ -28,7 +28,7 @@ module Qti
28
28
  private
29
29
 
30
30
  def answer_nodes
31
- @node.children.filter('simpleChoice')
31
+ @node.xpath('.//xmlns:simpleChoice')
32
32
  end
33
33
  end
34
34
  end
@@ -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.5.16
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-05-17 00:00:00.000000000 Z
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