qti 0.9.6 → 0.9.7
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/interactions/fill_blank_interaction.rb +2 -1
- data/lib/qti/v1/models/interactions/numeric_interaction.rb +51 -0
- data/lib/qti/version.rb +1 -1
- data/spec/fixtures/items_1.2/numeric.xml +89 -0
- data/spec/gemfiles/nokogiri-1.8.gemfile.lock +19 -19
- data/spec/lib/qti/v1/models/interactions/numeric_interaction_spec.rb +49 -0
- metadata +8 -15
- data/spec/gemfiles/nokogiri-1.6.gemfile.lock +0 -127
- data/spec/gemfiles/rails-4.2.gemfile.lock +0 -204
- data/spec/gemfiles/rails-5.0.gemfile.lock +0 -210
- data/spec/gemfiles/rails-5.1.gemfile.lock +0 -210
- data/spec/gemfiles/sanitize-4.2.gemfile.lock +0 -127
- data/spec/gemfiles/sanitize-4.5.gemfile.lock +0 -127
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1aabd1fcd54402b41afeebc7bc69be6c86390a52
|
4
|
+
data.tar.gz: c2bed919eed81aeba3b0cb8f753c79f5d0f68be6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: afeb012f7304d7952fe6f615eb8ddc74ab202f18ea9dcf012a3180d7b5ddbdd73c034eea72887c77382b49cc33d2bd558b6bfc209faa44d4d0fcf4ac2a7c16a6
|
7
|
+
data.tar.gz: 2ebe901bb7779a0cd972b54ad7108f59847361e47ae6c8964ba96dd10a707686174cfc719adf0ded99d0e5324a733442fee69b9a1a0ac91c4c1a4ca8123345ed
|
@@ -7,7 +7,8 @@ module Qti
|
|
7
7
|
def self.matches(node, parent)
|
8
8
|
return false if node.xpath('.//xmlns:other').present?
|
9
9
|
matches = node.xpath('.//xmlns:render_fib')
|
10
|
-
return false if matches.empty?
|
10
|
+
return false if matches.empty? ||
|
11
|
+
matches.first.attributes['fibtype']&.value == 'Decimal'
|
11
12
|
new(node, parent)
|
12
13
|
end
|
13
14
|
|
@@ -0,0 +1,51 @@
|
|
1
|
+
module Qti
|
2
|
+
module V1
|
3
|
+
module Models
|
4
|
+
module Interactions
|
5
|
+
class NumericInteraction < BaseInteraction
|
6
|
+
# This will know if a class matches
|
7
|
+
def self.matches(node, parent)
|
8
|
+
first_match = node.at_xpath('.//xmlns:render_fib')
|
9
|
+
return false unless first_match && first_match.attributes['fibtype']&.value == 'Decimal'
|
10
|
+
# exclude types other than "Exact response"
|
11
|
+
return false unless node.at_xpath('.//xmlns:varequal').present?
|
12
|
+
return false if node.xpath('.//xmlns:render_fib').count > 1
|
13
|
+
new(node, parent)
|
14
|
+
end
|
15
|
+
|
16
|
+
def item_body
|
17
|
+
@item_body ||= begin
|
18
|
+
node = @node.dup
|
19
|
+
presentation = node.at_xpath('.//xmlns:presentation')
|
20
|
+
mattext = presentation.at_xpath('.//xmlns:mattext')
|
21
|
+
inner_content = return_inner_content!(mattext)
|
22
|
+
sanitize_content!(inner_content)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
def answers
|
27
|
+
@answers ||= answer_nodes.map do |node|
|
28
|
+
V1::Models::Choices::FillBlankChoice.new(node, self)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
def scoring_data_structs
|
33
|
+
answer_nodes.map do |value_node|
|
34
|
+
ScoringData.new(
|
35
|
+
value_node.content,
|
36
|
+
nil,
|
37
|
+
id: value_node.attributes['respident']&.value
|
38
|
+
)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
private
|
43
|
+
|
44
|
+
def answer_nodes
|
45
|
+
@node.xpath('.//xmlns:varequal')
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
data/lib/qti/version.rb
CHANGED
@@ -0,0 +1,89 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
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 ident="i98661073a66c6b2567c8f9b1a22c2988" title="Quiz1.1">
|
4
|
+
<section ident="root_section">
|
5
|
+
<item ident="ia63b6a115fa68a555398a58626a62f81" title="Question1">
|
6
|
+
<presentation>
|
7
|
+
<material>
|
8
|
+
<mattext texttype="text/html"><div><p>question 1</p></div></mattext>
|
9
|
+
</material>
|
10
|
+
<response_str ident="response1" rcardinality="Single">
|
11
|
+
<render_fib fibtype="Decimal">
|
12
|
+
<response_label ident="answer1"/>
|
13
|
+
</render_fib>
|
14
|
+
</response_str>
|
15
|
+
</presentation>
|
16
|
+
<resprocessing>
|
17
|
+
<outcomes>
|
18
|
+
<decvar maxvalue="100" minvalue="0" varname="SCORE" vartype="Decimal"/>
|
19
|
+
</outcomes>
|
20
|
+
<respcondition continue="No">
|
21
|
+
<conditionvar>
|
22
|
+
<or>
|
23
|
+
<varequal respident="response1">1234.0</varequal>
|
24
|
+
<and>
|
25
|
+
<vargte respident="response1">1234.0</vargte>
|
26
|
+
<varlte respident="response1">1234.0</varlte>
|
27
|
+
</and>
|
28
|
+
</or>
|
29
|
+
</conditionvar>
|
30
|
+
<setvar action="Set" varname="SCORE">100</setvar>
|
31
|
+
</respcondition>
|
32
|
+
</resprocessing>
|
33
|
+
</item>
|
34
|
+
<item ident="i62e978ad510f5b51f61e1073df6357df" title="Question2">
|
35
|
+
<presentation>
|
36
|
+
<material>
|
37
|
+
<mattext texttype="text/html"><div><p>question 2</p></div></mattext>
|
38
|
+
</material>
|
39
|
+
<response_str ident="response1" rcardinality="Single">
|
40
|
+
<render_fib fibtype="Decimal">
|
41
|
+
<response_label ident="answer1"/>
|
42
|
+
</render_fib>
|
43
|
+
</response_str>
|
44
|
+
</presentation>
|
45
|
+
<resprocessing>
|
46
|
+
<outcomes>
|
47
|
+
<decvar maxvalue="100" minvalue="0" varname="SCORE" vartype="Decimal"/>
|
48
|
+
</outcomes>
|
49
|
+
<respcondition continue="No">
|
50
|
+
<conditionvar>
|
51
|
+
<or>
|
52
|
+
<varequal respident="response1">4321.0</varequal>
|
53
|
+
<and>
|
54
|
+
<vargte respident="response1">4321.0</vargte>
|
55
|
+
<varlte respident="response1">4321.0</varlte>
|
56
|
+
</and>
|
57
|
+
</or>
|
58
|
+
</conditionvar>
|
59
|
+
<setvar action="Set" varname="SCORE">100</setvar>
|
60
|
+
</respcondition>
|
61
|
+
<respcondition continue="No">
|
62
|
+
<conditionvar>
|
63
|
+
<or>
|
64
|
+
<varequal respident="response1">1234.0</varequal>
|
65
|
+
<and>
|
66
|
+
<vargte respident="response1">1234.0</vargte>
|
67
|
+
<varlte respident="response1">1234.0</varlte>
|
68
|
+
</and>
|
69
|
+
</or>
|
70
|
+
</conditionvar>
|
71
|
+
<setvar action="Set" varname="SCORE">100</setvar>
|
72
|
+
</respcondition>
|
73
|
+
<respcondition continue="No">
|
74
|
+
<conditionvar>
|
75
|
+
<or>
|
76
|
+
<varequal respident="response1">1111.0</varequal>
|
77
|
+
<and>
|
78
|
+
<vargte respident="response1">1111.0</vargte>
|
79
|
+
<varlte respident="response1">1111.0</varlte>
|
80
|
+
</and>
|
81
|
+
</or>
|
82
|
+
</conditionvar>
|
83
|
+
<setvar action="Set" varname="SCORE">100</setvar>
|
84
|
+
</respcondition>
|
85
|
+
</resprocessing>
|
86
|
+
</item>
|
87
|
+
</section>
|
88
|
+
</assessment>
|
89
|
+
</questestinterop>
|
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: ../..
|
3
3
|
specs:
|
4
|
-
qti (0.9.
|
4
|
+
qti (0.9.7)
|
5
5
|
activesupport (>= 4.2.9, < 5.2)
|
6
6
|
dry-struct (~> 0.2.1)
|
7
7
|
dry-types (~> 0.12.0)
|
@@ -29,7 +29,7 @@ GEM
|
|
29
29
|
dry-container (0.6.0)
|
30
30
|
concurrent-ruby (~> 1.0)
|
31
31
|
dry-configurable (~> 0.1, >= 0.1.3)
|
32
|
-
dry-core (0.4.
|
32
|
+
dry-core (0.4.2)
|
33
33
|
concurrent-ruby (~> 1.0)
|
34
34
|
dry-equalizer (0.2.0)
|
35
35
|
dry-logic (0.4.2)
|
@@ -61,29 +61,29 @@ GEM
|
|
61
61
|
mini_portile2 (~> 2.3.0)
|
62
62
|
nokogumbo (1.4.13)
|
63
63
|
nokogiri
|
64
|
-
parallel (1.12.
|
65
|
-
parser (2.4.0.
|
66
|
-
ast (~> 2.
|
64
|
+
parallel (1.12.1)
|
65
|
+
parser (2.4.0.2)
|
66
|
+
ast (~> 2.3)
|
67
67
|
powerpack (0.1.1)
|
68
|
-
pry (0.11.
|
68
|
+
pry (0.11.3)
|
69
69
|
coderay (~> 1.1.0)
|
70
70
|
method_source (~> 0.9.0)
|
71
71
|
rainbow (2.2.2)
|
72
72
|
rake
|
73
73
|
rake (0.9.6)
|
74
|
-
rspec (3.
|
75
|
-
rspec-core (~> 3.
|
76
|
-
rspec-expectations (~> 3.
|
77
|
-
rspec-mocks (~> 3.
|
78
|
-
rspec-core (3.
|
79
|
-
rspec-support (~> 3.
|
80
|
-
rspec-expectations (3.
|
74
|
+
rspec (3.7.0)
|
75
|
+
rspec-core (~> 3.7.0)
|
76
|
+
rspec-expectations (~> 3.7.0)
|
77
|
+
rspec-mocks (~> 3.7.0)
|
78
|
+
rspec-core (3.7.0)
|
79
|
+
rspec-support (~> 3.7.0)
|
80
|
+
rspec-expectations (3.7.0)
|
81
81
|
diff-lcs (>= 1.2.0, < 2.0)
|
82
|
-
rspec-support (~> 3.
|
83
|
-
rspec-mocks (3.
|
82
|
+
rspec-support (~> 3.7.0)
|
83
|
+
rspec-mocks (3.7.0)
|
84
84
|
diff-lcs (>= 1.2.0, < 2.0)
|
85
|
-
rspec-support (~> 3.
|
86
|
-
rspec-support (3.
|
85
|
+
rspec-support (~> 3.7.0)
|
86
|
+
rspec-support (3.7.0)
|
87
87
|
rubocop (0.50.0)
|
88
88
|
parallel (~> 1.10)
|
89
89
|
parser (>= 2.3.3.1, < 3.0)
|
@@ -91,7 +91,7 @@ GEM
|
|
91
91
|
rainbow (>= 2.2.2, < 3.0)
|
92
92
|
ruby-progressbar (~> 1.7)
|
93
93
|
unicode-display_width (~> 1.0, >= 1.0.1)
|
94
|
-
ruby-progressbar (1.
|
94
|
+
ruby-progressbar (1.9.0)
|
95
95
|
rubyzip (1.2.1)
|
96
96
|
sanitize (4.5.0)
|
97
97
|
crass (~> 1.0.2)
|
@@ -125,4 +125,4 @@ DEPENDENCIES
|
|
125
125
|
wwtd (~> 1.3)
|
126
126
|
|
127
127
|
BUNDLED WITH
|
128
|
-
1.
|
128
|
+
1.16.0
|
@@ -0,0 +1,49 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Qti::V1::Models::Interactions::NumericInteraction do
|
4
|
+
let(:fixtures_path) { File.join('spec', 'fixtures', 'items_1.2') }
|
5
|
+
let(:file_path) { File.join(fixtures_path, 'numeric.xml') }
|
6
|
+
let(:test_object) { Qti::V1::Models::Assessment.from_path!(file_path) }
|
7
|
+
let(:assessment_item_refs) { test_object.assessment_items }
|
8
|
+
|
9
|
+
shared_examples_for 'answers' do
|
10
|
+
it 'returns the answers' do
|
11
|
+
expect(loaded_class.answers.count).to eq answer_count
|
12
|
+
expect(loaded_class.answers.first).to be_an_instance_of(Qti::V1::Models::Choices::FillBlankChoice)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
shared_examples_for 'scoring_data_structs' do
|
17
|
+
it 'returns the scoring_data_structs' do
|
18
|
+
expect(loaded_class.scoring_data_structs.map(&:id)).to eq(scoring_data_ids)
|
19
|
+
expect(loaded_class.scoring_data_structs.map(&:values)).to eq(scoring_data_values)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
context 'the first item in numeric.xml' do
|
24
|
+
let(:loaded_class) { described_class.new(assessment_item_refs.first, test_object) }
|
25
|
+
let(:scoring_data_ids) { %w[response1] }
|
26
|
+
let(:scoring_data_values) { %w[1234.0] }
|
27
|
+
let(:answer_count) { 1 }
|
28
|
+
|
29
|
+
include_examples 'answers'
|
30
|
+
include_examples 'scoring_data_structs'
|
31
|
+
end
|
32
|
+
|
33
|
+
context 'the second item in numeric.xml' do
|
34
|
+
let(:loaded_class) { described_class.new(assessment_item_refs[1], test_object) }
|
35
|
+
let(:scoring_data_ids) { %w[response1 response1 response1] }
|
36
|
+
let(:scoring_data_values) { %w[4321.0 1234.0 1111.0] }
|
37
|
+
let(:answer_count) { 3 }
|
38
|
+
|
39
|
+
include_examples 'answers'
|
40
|
+
include_examples 'scoring_data_structs'
|
41
|
+
end
|
42
|
+
|
43
|
+
context '#item_body' do
|
44
|
+
let(:loaded_class) { described_class.new(assessment_item_refs.first, test_object) }
|
45
|
+
it 'returns right title' do
|
46
|
+
expect(loaded_class.item_body).to eq '<div><p>question 1</p></div>'
|
47
|
+
end
|
48
|
+
end
|
49
|
+
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.9.
|
4
|
+
version: 0.9.7
|
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:
|
12
|
+
date: 2018-01-02 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|
@@ -272,6 +272,7 @@ files:
|
|
272
272
|
- lib/qti/v1/models/interactions/choice_interaction.rb
|
273
273
|
- lib/qti/v1/models/interactions/fill_blank_interaction.rb
|
274
274
|
- lib/qti/v1/models/interactions/match_interaction.rb
|
275
|
+
- lib/qti/v1/models/interactions/numeric_interaction.rb
|
275
276
|
- lib/qti/v1/models/interactions/ordering_interaction.rb
|
276
277
|
- lib/qti/v1/models/interactions/string_interaction.rb
|
277
278
|
- lib/qti/v1/models/scoring_data.rb
|
@@ -304,6 +305,7 @@ files:
|
|
304
305
|
- spec/fixtures/items_1.2/multiple_answer.xml
|
305
306
|
- spec/fixtures/items_1.2/multiple_answer_canvas.xml
|
306
307
|
- spec/fixtures/items_1.2/multiple_choice.xml
|
308
|
+
- spec/fixtures/items_1.2/numeric.xml
|
307
309
|
- spec/fixtures/items_1.2/ordering.xml
|
308
310
|
- spec/fixtures/items_1.2/single_fib.xml
|
309
311
|
- spec/fixtures/items_1.2/true_false.xml
|
@@ -503,19 +505,13 @@ files:
|
|
503
505
|
- spec/fixtures/tests/tests/rtest27.xml
|
504
506
|
- spec/fixtures/unsupported_version/imsmanifest.xml
|
505
507
|
- spec/gemfiles/nokogiri-1.6.gemfile
|
506
|
-
- spec/gemfiles/nokogiri-1.6.gemfile.lock
|
507
508
|
- spec/gemfiles/nokogiri-1.8.gemfile
|
508
509
|
- spec/gemfiles/nokogiri-1.8.gemfile.lock
|
509
510
|
- spec/gemfiles/rails-4.2.gemfile
|
510
|
-
- spec/gemfiles/rails-4.2.gemfile.lock
|
511
511
|
- spec/gemfiles/rails-5.0.gemfile
|
512
|
-
- spec/gemfiles/rails-5.0.gemfile.lock
|
513
512
|
- spec/gemfiles/rails-5.1.gemfile
|
514
|
-
- spec/gemfiles/rails-5.1.gemfile.lock
|
515
513
|
- spec/gemfiles/sanitize-4.2.gemfile
|
516
|
-
- spec/gemfiles/sanitize-4.2.gemfile.lock
|
517
514
|
- spec/gemfiles/sanitize-4.5.gemfile
|
518
|
-
- spec/gemfiles/sanitize-4.5.gemfile.lock
|
519
515
|
- spec/lib/qti/assessment_item_exporter_spec.rb
|
520
516
|
- spec/lib/qti/exporter_spec.rb
|
521
517
|
- spec/lib/qti/models/base_spec.rb
|
@@ -528,6 +524,7 @@ files:
|
|
528
524
|
- spec/lib/qti/v1/models/interactions/choice_interaction_spec.rb
|
529
525
|
- spec/lib/qti/v1/models/interactions/fill_blank_interaction_spec.rb
|
530
526
|
- spec/lib/qti/v1/models/interactions/match_interaction_spec.rb
|
527
|
+
- spec/lib/qti/v1/models/interactions/numeric_interaction_spec.rb
|
531
528
|
- spec/lib/qti/v1/models/interactions/ordering_interaction_spec.rb
|
532
529
|
- spec/lib/qti/v1/models/interactions/string_interaction_spec.rb
|
533
530
|
- spec/lib/qti/v2/models/assessment_item_spec.rb
|
@@ -568,7 +565,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
568
565
|
version: '0'
|
569
566
|
requirements: []
|
570
567
|
rubyforge_project:
|
571
|
-
rubygems_version: 2.6.
|
568
|
+
rubygems_version: 2.6.13
|
572
569
|
signing_key:
|
573
570
|
specification_version: 4
|
574
571
|
summary: QTI 1.2 and 2.1 import and export models
|
@@ -581,6 +578,7 @@ test_files:
|
|
581
578
|
- spec/fixtures/items_1.2/multiple_answer.xml
|
582
579
|
- spec/fixtures/items_1.2/multiple_answer_canvas.xml
|
583
580
|
- spec/fixtures/items_1.2/multiple_choice.xml
|
581
|
+
- spec/fixtures/items_1.2/numeric.xml
|
584
582
|
- spec/fixtures/items_1.2/ordering.xml
|
585
583
|
- spec/fixtures/items_1.2/single_fib.xml
|
586
584
|
- spec/fixtures/items_1.2/true_false.xml
|
@@ -780,19 +778,13 @@ test_files:
|
|
780
778
|
- spec/fixtures/tests/tests/rtest27.xml
|
781
779
|
- spec/fixtures/unsupported_version/imsmanifest.xml
|
782
780
|
- spec/gemfiles/nokogiri-1.6.gemfile
|
783
|
-
- spec/gemfiles/nokogiri-1.6.gemfile.lock
|
784
781
|
- spec/gemfiles/nokogiri-1.8.gemfile
|
785
782
|
- spec/gemfiles/nokogiri-1.8.gemfile.lock
|
786
783
|
- spec/gemfiles/rails-4.2.gemfile
|
787
|
-
- spec/gemfiles/rails-4.2.gemfile.lock
|
788
784
|
- spec/gemfiles/rails-5.0.gemfile
|
789
|
-
- spec/gemfiles/rails-5.0.gemfile.lock
|
790
785
|
- spec/gemfiles/rails-5.1.gemfile
|
791
|
-
- spec/gemfiles/rails-5.1.gemfile.lock
|
792
786
|
- spec/gemfiles/sanitize-4.2.gemfile
|
793
|
-
- spec/gemfiles/sanitize-4.2.gemfile.lock
|
794
787
|
- spec/gemfiles/sanitize-4.5.gemfile
|
795
|
-
- spec/gemfiles/sanitize-4.5.gemfile.lock
|
796
788
|
- spec/lib/qti/assessment_item_exporter_spec.rb
|
797
789
|
- spec/lib/qti/exporter_spec.rb
|
798
790
|
- spec/lib/qti/models/base_spec.rb
|
@@ -805,6 +797,7 @@ test_files:
|
|
805
797
|
- spec/lib/qti/v1/models/interactions/choice_interaction_spec.rb
|
806
798
|
- spec/lib/qti/v1/models/interactions/fill_blank_interaction_spec.rb
|
807
799
|
- spec/lib/qti/v1/models/interactions/match_interaction_spec.rb
|
800
|
+
- spec/lib/qti/v1/models/interactions/numeric_interaction_spec.rb
|
808
801
|
- spec/lib/qti/v1/models/interactions/ordering_interaction_spec.rb
|
809
802
|
- spec/lib/qti/v1/models/interactions/string_interaction_spec.rb
|
810
803
|
- spec/lib/qti/v2/models/assessment_item_spec.rb
|
@@ -1,127 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: ../..
|
3
|
-
specs:
|
4
|
-
qti (0.9.3)
|
5
|
-
activesupport (>= 4.2.9, < 5.2)
|
6
|
-
dry-struct (~> 0.2.1)
|
7
|
-
dry-types (~> 0.12.0)
|
8
|
-
nokogiri (>= 1.6.8, < 1.9)
|
9
|
-
rubyzip (~> 1.2)
|
10
|
-
sanitize (>= 4.2.0, < 5.0)
|
11
|
-
|
12
|
-
GEM
|
13
|
-
remote: https://rubygems.org/
|
14
|
-
specs:
|
15
|
-
activesupport (5.1.4)
|
16
|
-
concurrent-ruby (~> 1.0, >= 1.0.2)
|
17
|
-
i18n (~> 0.7)
|
18
|
-
minitest (~> 5.1)
|
19
|
-
tzinfo (~> 1.1)
|
20
|
-
ast (2.3.0)
|
21
|
-
byebug (9.1.0)
|
22
|
-
coderay (1.1.2)
|
23
|
-
concurrent-ruby (1.0.5)
|
24
|
-
crass (1.0.2)
|
25
|
-
diff-lcs (1.3)
|
26
|
-
docile (1.1.5)
|
27
|
-
dry-configurable (0.7.0)
|
28
|
-
concurrent-ruby (~> 1.0)
|
29
|
-
dry-container (0.6.0)
|
30
|
-
concurrent-ruby (~> 1.0)
|
31
|
-
dry-configurable (~> 0.1, >= 0.1.3)
|
32
|
-
dry-core (0.3.4)
|
33
|
-
concurrent-ruby (~> 1.0)
|
34
|
-
dry-equalizer (0.2.0)
|
35
|
-
dry-logic (0.4.2)
|
36
|
-
dry-container (~> 0.2, >= 0.2.6)
|
37
|
-
dry-core (~> 0.2)
|
38
|
-
dry-equalizer (~> 0.2)
|
39
|
-
dry-struct (0.2.1)
|
40
|
-
dry-configurable (~> 0.1)
|
41
|
-
dry-equalizer (~> 0.2)
|
42
|
-
dry-types (~> 0.9, >= 0.9.0)
|
43
|
-
ice_nine (~> 0.11)
|
44
|
-
dry-types (0.12.0)
|
45
|
-
concurrent-ruby (~> 1.0)
|
46
|
-
dry-configurable (~> 0.1)
|
47
|
-
dry-container (~> 0.3)
|
48
|
-
dry-core (~> 0.2, >= 0.2.1)
|
49
|
-
dry-equalizer (~> 0.2)
|
50
|
-
dry-logic (~> 0.4, >= 0.4.2)
|
51
|
-
inflecto (~> 0.0.0, >= 0.0.2)
|
52
|
-
i18n (0.8.6)
|
53
|
-
ice_nine (0.11.2)
|
54
|
-
inflecto (0.0.2)
|
55
|
-
json (2.1.0)
|
56
|
-
method_source (0.9.0)
|
57
|
-
mini_portile2 (2.1.0)
|
58
|
-
minitest (5.10.3)
|
59
|
-
nokogiri (1.6.8.1)
|
60
|
-
mini_portile2 (~> 2.1.0)
|
61
|
-
nokogumbo (1.4.13)
|
62
|
-
nokogiri
|
63
|
-
parallel (1.12.0)
|
64
|
-
parser (2.4.0.0)
|
65
|
-
ast (~> 2.2)
|
66
|
-
powerpack (0.1.1)
|
67
|
-
pry (0.11.1)
|
68
|
-
coderay (~> 1.1.0)
|
69
|
-
method_source (~> 0.9.0)
|
70
|
-
rainbow (2.2.2)
|
71
|
-
rake
|
72
|
-
rake (0.9.6)
|
73
|
-
rspec (3.6.0)
|
74
|
-
rspec-core (~> 3.6.0)
|
75
|
-
rspec-expectations (~> 3.6.0)
|
76
|
-
rspec-mocks (~> 3.6.0)
|
77
|
-
rspec-core (3.6.0)
|
78
|
-
rspec-support (~> 3.6.0)
|
79
|
-
rspec-expectations (3.6.0)
|
80
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
81
|
-
rspec-support (~> 3.6.0)
|
82
|
-
rspec-mocks (3.6.0)
|
83
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
84
|
-
rspec-support (~> 3.6.0)
|
85
|
-
rspec-support (3.6.0)
|
86
|
-
rubocop (0.50.0)
|
87
|
-
parallel (~> 1.10)
|
88
|
-
parser (>= 2.3.3.1, < 3.0)
|
89
|
-
powerpack (~> 0.1)
|
90
|
-
rainbow (>= 2.2.2, < 3.0)
|
91
|
-
ruby-progressbar (~> 1.7)
|
92
|
-
unicode-display_width (~> 1.0, >= 1.0.1)
|
93
|
-
ruby-progressbar (1.8.3)
|
94
|
-
rubyzip (1.2.1)
|
95
|
-
sanitize (4.5.0)
|
96
|
-
crass (~> 1.0.2)
|
97
|
-
nokogiri (>= 1.4.4)
|
98
|
-
nokogumbo (~> 1.4.1)
|
99
|
-
simplecov (0.15.1)
|
100
|
-
docile (~> 1.1.0)
|
101
|
-
json (>= 1.8, < 3)
|
102
|
-
simplecov-html (~> 0.10.0)
|
103
|
-
simplecov-html (0.10.2)
|
104
|
-
thread_safe (0.3.6)
|
105
|
-
tzinfo (1.2.3)
|
106
|
-
thread_safe (~> 0.1)
|
107
|
-
unicode-display_width (1.3.0)
|
108
|
-
wwtd (1.3.0)
|
109
|
-
|
110
|
-
PLATFORMS
|
111
|
-
ruby
|
112
|
-
|
113
|
-
DEPENDENCIES
|
114
|
-
bundler (~> 1.15)
|
115
|
-
byebug (~> 9.0)
|
116
|
-
nokogiri (~> 1.6.8)
|
117
|
-
pry (~> 0)
|
118
|
-
qti!
|
119
|
-
rake (~> 0)
|
120
|
-
rspec (~> 3.6)
|
121
|
-
rspec-mocks (~> 3.6)
|
122
|
-
rubocop (~> 0.50.0)
|
123
|
-
simplecov (~> 0)
|
124
|
-
wwtd (~> 1.3)
|
125
|
-
|
126
|
-
BUNDLED WITH
|
127
|
-
1.15.4
|