pupilfirst_xapi 0.3.5 → 0.3.8
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/pupilfirst_xapi/objects.rb +20 -1
- data/lib/pupilfirst_xapi/objects/answer.rb +18 -0
- data/lib/pupilfirst_xapi/objects/survey.rb +16 -0
- data/lib/pupilfirst_xapi/objects/survey_end.rb +18 -0
- data/lib/pupilfirst_xapi/objects/survey_start.rb +18 -0
- data/lib/pupilfirst_xapi/statements.rb +9 -1
- data/lib/pupilfirst_xapi/statements/capability_result_viewed.rb +20 -0
- data/lib/pupilfirst_xapi/statements/question_answered.rb +21 -0
- data/lib/pupilfirst_xapi/statements/survey_ended.rb +21 -0
- data/lib/pupilfirst_xapi/statements/survey_started.rb +21 -0
- data/lib/pupilfirst_xapi/verbs.rb +3 -0
- data/lib/pupilfirst_xapi/version.rb +1 -1
- data/spec/statements/capability_result_viewed_spec.rb +43 -0
- data/spec/statements/question_answered_spec.rb +50 -0
- data/spec/statements/survey_ended_spec.rb +45 -0
- data/spec/statements/survey_started_spec.rb +45 -0
- metadata +24 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9671a7b657ac2a6a5db9b4988b50f069d24bde84e08f722e17c9e510f0990f88
|
4
|
+
data.tar.gz: 1eb93f047df91dc644ee65372d6a163d732c1d64e3763189de793fdd60ccbe2a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 69254b39c819d27d967c005fb6a91f648527cd78abadd17a2ae8b1e51294d56d2a1e9392d58671b2eb617511cfe5884a2565e73ca26f35304c0f68463c814db1
|
7
|
+
data.tar.gz: 9bf904d914c4ad290be96ca7a17fbae1d0cf0aec40f0dfe50e31201291c86942741d010b2cc17c3a103303aa6c776ceb4f2a7f5d550026b49b12b5b4b6f40cf6
|
@@ -3,6 +3,10 @@ require_relative 'objects/course'
|
|
3
3
|
require_relative 'objects/target'
|
4
4
|
require_relative 'objects/video_start'
|
5
5
|
require_relative 'objects/video_end'
|
6
|
+
require_relative 'objects/survey_start'
|
7
|
+
require_relative 'objects/survey_end'
|
8
|
+
require_relative 'objects/survey'
|
9
|
+
require_relative 'objects/answer'
|
6
10
|
|
7
11
|
module PupilfirstXapi
|
8
12
|
module Objects
|
@@ -18,9 +22,24 @@ module PupilfirstXapi
|
|
18
22
|
VideoStart.new.call(target, uri_for)
|
19
23
|
end
|
20
24
|
|
21
|
-
|
22
25
|
def self.video_end(target, uri_for)
|
23
26
|
VideoEnd.new.call(target, uri_for)
|
24
27
|
end
|
28
|
+
|
29
|
+
def self.survey_start(survey, uri_for)
|
30
|
+
SurveyStart.new.call(survey, uri_for)
|
31
|
+
end
|
32
|
+
|
33
|
+
def self.survey_end(survey, uri_for)
|
34
|
+
SurveyEnd.new.call(survey, uri_for)
|
35
|
+
end
|
36
|
+
|
37
|
+
def self.capability_result_viewed(survey, uri_for)
|
38
|
+
Survey.new.call(survey, uri_for)
|
39
|
+
end
|
40
|
+
|
41
|
+
def self.answer(question, uri_for)
|
42
|
+
Answer.new.call(question, uri_for)
|
43
|
+
end
|
25
44
|
end
|
26
45
|
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module PupilfirstXapi
|
2
|
+
module Objects
|
3
|
+
class Answer
|
4
|
+
def call(answer, uri_for)
|
5
|
+
target_uri = uri_for.call(answer)
|
6
|
+
|
7
|
+
Builder.new(
|
8
|
+
id: target_uri,
|
9
|
+
type: 'http://adlnet.gov/expapi/activities/assessment',
|
10
|
+
name: answer.question.description,
|
11
|
+
description: answer.question.description
|
12
|
+
).with_extension('http://adlnet.gov/expapi/activities/question', answer.question.description)
|
13
|
+
.with_extension('http://adlnet.gov/expapi/activities/answer', answer.content || answer.alternatives.as_json)
|
14
|
+
.call
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module PupilfirstXapi
|
2
|
+
module Objects
|
3
|
+
class Survey
|
4
|
+
def call(survey, uri_for)
|
5
|
+
target_uri = uri_for.call(survey)
|
6
|
+
|
7
|
+
Builder.new(
|
8
|
+
id: target_uri,
|
9
|
+
type: 'http://id.tincanapi.com/activitytype/survey',
|
10
|
+
name: survey.name,
|
11
|
+
description: survey.external_name
|
12
|
+
).call
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module PupilfirstXapi
|
2
|
+
module Objects
|
3
|
+
class SurveyEnd
|
4
|
+
def call(survey, uri_for)
|
5
|
+
target_uri = uri_for.call(survey)
|
6
|
+
|
7
|
+
Builder.new(
|
8
|
+
id: target_uri,
|
9
|
+
type: 'http://adlnet.gov/expapi/activities/assessment',
|
10
|
+
name: survey.name,
|
11
|
+
description: survey.external_name
|
12
|
+
).with_extension(
|
13
|
+
'http://id.tincanapi.com/extension/target', survey.slug
|
14
|
+
).call
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module PupilfirstXapi
|
2
|
+
module Objects
|
3
|
+
class SurveyStart
|
4
|
+
def call(survey, uri_for)
|
5
|
+
target_uri = uri_for.call(survey)
|
6
|
+
|
7
|
+
Builder.new(
|
8
|
+
id: target_uri,
|
9
|
+
type: 'http://adlnet.gov/expapi/activities/assessment',
|
10
|
+
name: survey.name,
|
11
|
+
description: survey.external_name
|
12
|
+
).with_extension(
|
13
|
+
'http://id.tincanapi.com/extension/target', survey.slug
|
14
|
+
).call
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -3,6 +3,10 @@ require "pupilfirst_xapi/statements/course_registered"
|
|
3
3
|
require "pupilfirst_xapi/statements/target_completed"
|
4
4
|
require "pupilfirst_xapi/statements/video_started"
|
5
5
|
require "pupilfirst_xapi/statements/video_ended"
|
6
|
+
require "pupilfirst_xapi/statements/survey_started"
|
7
|
+
require "pupilfirst_xapi/statements/survey_ended"
|
8
|
+
require "pupilfirst_xapi/statements/capability_result_viewed"
|
9
|
+
require "pupilfirst_xapi/statements/question_answered"
|
6
10
|
|
7
11
|
module PupilfirstXapi
|
8
12
|
module Statements
|
@@ -20,7 +24,11 @@ module PupilfirstXapi
|
|
20
24
|
:submission_graded => TargetCompleted,
|
21
25
|
:submission_automatically_verified => TargetCompleted,
|
22
26
|
:video_started => VideoStarted,
|
23
|
-
:video_ended => VideoEnded
|
27
|
+
:video_ended => VideoEnded,
|
28
|
+
:survey_started => SurveyStarted,
|
29
|
+
:survey_ended => SurveyEnded,
|
30
|
+
:capability_result_viewed => CapabilityResultViewed,
|
31
|
+
:question_answered => QuestionAnswered
|
24
32
|
}
|
25
33
|
end
|
26
34
|
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module PupilfirstXapi
|
2
|
+
module Statements
|
3
|
+
class CapabilityResultViewed
|
4
|
+
def initialize(repository, uri_for)
|
5
|
+
@repository = repository
|
6
|
+
@uri_for = uri_for
|
7
|
+
end
|
8
|
+
|
9
|
+
def call(actor_id:, resource_id:)
|
10
|
+
actor = @repository.call(:user, actor_id)
|
11
|
+
survey = @repository.call(:survey, resource_id)
|
12
|
+
Xapi.create_statement(
|
13
|
+
actor: Actors.agent(actor),
|
14
|
+
verb: Verbs::VIEWED,
|
15
|
+
object: Objects.capability_result_viewed(survey, @uri_for)
|
16
|
+
)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module PupilfirstXapi
|
2
|
+
module Statements
|
3
|
+
class QuestionAnswered
|
4
|
+
def initialize(repository, uri_for)
|
5
|
+
@repository = repository
|
6
|
+
@uri_for = uri_for
|
7
|
+
end
|
8
|
+
|
9
|
+
def call(actor_id:, resource_id:)
|
10
|
+
actor = @repository.call(:user, actor_id)
|
11
|
+
answer = @repository.call(:answer, resource_id)
|
12
|
+
|
13
|
+
Xapi.create_statement(
|
14
|
+
actor: Actors.agent(actor),
|
15
|
+
verb: Verbs::ANSWERED,
|
16
|
+
object: Objects.answer(answer, @uri_for)
|
17
|
+
)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module PupilfirstXapi
|
2
|
+
module Statements
|
3
|
+
class SurveyEnded
|
4
|
+
def initialize(repository, uri_for)
|
5
|
+
@repository = repository
|
6
|
+
@uri_for = uri_for
|
7
|
+
end
|
8
|
+
|
9
|
+
def call(actor_id:, resource_id:)
|
10
|
+
actor = @repository.call(:user, actor_id)
|
11
|
+
survey = @repository.call(:survey, resource_id)
|
12
|
+
|
13
|
+
Xapi.create_statement(
|
14
|
+
actor: Actors.agent(actor),
|
15
|
+
verb: Verbs::COMPLETED,
|
16
|
+
object: Objects.survey_end(survey, @uri_for)
|
17
|
+
)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module PupilfirstXapi
|
2
|
+
module Statements
|
3
|
+
class SurveyStarted
|
4
|
+
def initialize(repository, uri_for)
|
5
|
+
@repository = repository
|
6
|
+
@uri_for = uri_for
|
7
|
+
end
|
8
|
+
|
9
|
+
def call(actor_id:, resource_id:)
|
10
|
+
actor = @repository.call(:user, actor_id)
|
11
|
+
survey = @repository.call(:survey, resource_id)
|
12
|
+
|
13
|
+
Xapi.create_statement(
|
14
|
+
actor: Actors.agent(actor),
|
15
|
+
verb: Verbs::STARTED,
|
16
|
+
object: Objects.survey_start(survey, @uri_for)
|
17
|
+
)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -5,5 +5,8 @@ module PupilfirstXapi
|
|
5
5
|
REGISTERED = Xapi.create_verb(id: 'http://adlnet.gov/expapi/verbs/registered', name: 'registered')
|
6
6
|
VIDEO_STARTED = Xapi.create_verb(id: 'http://activitystrea.ms/schema/1.0/start', name: 'start')
|
7
7
|
VIDEO_ENDED = Xapi.create_verb(id: 'http://activitystrea.ms/schema/1.0/consume', name: 'consumed')
|
8
|
+
STARTED = Xapi.create_verb(id: 'http://adlnet.gov/expapi/verbs/initialized', name: 'initialized')
|
9
|
+
VIEWED = Xapi.create_verb(id: 'http://id.tincanapi.com/verb/viewed', name: 'viewed')
|
10
|
+
ANSWERED = Xapi.create_verb(id: 'https://w3id.org/xapi/dod-isd/verbs/answered', name: 'answered')
|
8
11
|
end
|
9
12
|
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module PupilfirstXapi
|
4
|
+
module Statements
|
5
|
+
RSpec.describe CapabilityResultViewed do
|
6
|
+
it do
|
7
|
+
john = double(:john, name: 'John Doe', email: 'john@doe.com')
|
8
|
+
survey = double(
|
9
|
+
:survey,
|
10
|
+
name: 'Rails for Beginners',
|
11
|
+
external_name: 'Seems easy',
|
12
|
+
created_at: 1.week.ago,
|
13
|
+
ends_at: nil,
|
14
|
+
targets: [
|
15
|
+
double(:target, title: '1st target', description: 'Seems easy'),
|
16
|
+
double(:target, title: '2nd target', description: 'Seems not easy')
|
17
|
+
]
|
18
|
+
)
|
19
|
+
|
20
|
+
data = {
|
21
|
+
survey: { 456 => survey },
|
22
|
+
user: { 123 => john }
|
23
|
+
}
|
24
|
+
|
25
|
+
repository = ->(klass, resource_id) { data.dig(klass, resource_id) }
|
26
|
+
uri_for = ->(obj) { obj == survey ? 'rails-for-begginers' : nil }
|
27
|
+
|
28
|
+
xapi = CapabilityResultViewed.new(repository, uri_for).call(actor_id: 123, resource_id: 456)
|
29
|
+
|
30
|
+
expect(xapi).to be_a Xapi::Statement
|
31
|
+
expect_actor(xapi.actor, name: 'John Doe', email: 'john@doe.com')
|
32
|
+
expect(xapi.verb).to eq Verbs::VIEWED
|
33
|
+
|
34
|
+
expect(xapi.object).to be_a Xapi::Activity
|
35
|
+
expect(xapi.object.object_type).to eq 'Activity'
|
36
|
+
expect(xapi.object.id).to eq 'rails-for-begginers'
|
37
|
+
expect(xapi.object.definition.type).to eq 'http://id.tincanapi.com/activitytype/survey'
|
38
|
+
expect(xapi.object.definition.name).to eq({'en-US' => 'Rails for Beginners'})
|
39
|
+
expect(xapi.object.definition.description).to eq({'en-US' => 'Seems easy'})
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module PupilfirstXapi
|
4
|
+
module Statements
|
5
|
+
RSpec.describe QuestionAnswered do
|
6
|
+
it do
|
7
|
+
john = double(:john, name: 'John Doe', email: 'john@doe.com')
|
8
|
+
question = double(:question, description: "What is your favorite animal?")
|
9
|
+
answer = double(
|
10
|
+
:answer,
|
11
|
+
answer_id: 42,
|
12
|
+
question_id: 4,
|
13
|
+
question: question,
|
14
|
+
alternative_id: nil,
|
15
|
+
survey_group_id:7,
|
16
|
+
user_external_id: 'a6ad5226-7d8b-4108-9cc9-f0821de150f5',
|
17
|
+
answer_type: 'open_ended',
|
18
|
+
content: 'Content',
|
19
|
+
score: 0.0,
|
20
|
+
level: 1.0,
|
21
|
+
language: 'en',
|
22
|
+
created_at: 1.week.ago,
|
23
|
+
ends_at: nil
|
24
|
+
)
|
25
|
+
|
26
|
+
data = {
|
27
|
+
answer: { 456 => answer },
|
28
|
+
user: { 123 => john }
|
29
|
+
}
|
30
|
+
|
31
|
+
repository = ->(klass, resource_id) { data.dig(klass, resource_id) }
|
32
|
+
uri_for = ->(obj) { obj == answer ? 'rails-for-begginers' : nil }
|
33
|
+
|
34
|
+
xapi = QuestionAnswered.new(repository, uri_for).call(actor_id: 123, resource_id: 456)
|
35
|
+
|
36
|
+
expect(xapi).to be_a Xapi::Statement
|
37
|
+
expect_actor(xapi.actor, name: 'John Doe', email: 'john@doe.com')
|
38
|
+
expect(xapi.verb).to eq Verbs::ANSWERED
|
39
|
+
|
40
|
+
expect(xapi.object).to be_a Xapi::Activity
|
41
|
+
expect(xapi.object.object_type).to eq 'Activity'
|
42
|
+
expect(xapi.object.id).to eq 'rails-for-begginers'
|
43
|
+
expect(xapi.object.definition.type).to eq 'http://adlnet.gov/expapi/activities/assessment'
|
44
|
+
expect(xapi.object.definition.name).to eq({'en-US' => 'What is your favorite animal?'})
|
45
|
+
expect(xapi.object.definition.description).to eq({'en-US' => 'What is your favorite animal?'})
|
46
|
+
expect(xapi.object.definition.extensions.fetch('http://adlnet.gov/expapi/activities/question')).to eq("What is your favorite animal?")
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module PupilfirstXapi
|
4
|
+
module Statements
|
5
|
+
RSpec.describe SurveyEnded do
|
6
|
+
it do
|
7
|
+
john = double(:john, name: 'John Doe', email: 'john@doe.com')
|
8
|
+
survey = double(
|
9
|
+
:survey,
|
10
|
+
name: 'Rails for Beginners',
|
11
|
+
external_name: 'Seems easy',
|
12
|
+
slug: 'a6ad5226-7d8b-4108-9cc9-f0821de150f5',
|
13
|
+
created_at: 1.week.ago,
|
14
|
+
ends_at: nil,
|
15
|
+
targets: [
|
16
|
+
double(:target, title: '1st target', description: 'Seems easy'),
|
17
|
+
double(:target, title: '2nd target', description: 'Seems not easy')
|
18
|
+
]
|
19
|
+
)
|
20
|
+
|
21
|
+
data = {
|
22
|
+
survey: { 456 => survey },
|
23
|
+
user: { 123 => john }
|
24
|
+
}
|
25
|
+
|
26
|
+
repository = ->(klass, resource_id) { data.dig(klass, resource_id) }
|
27
|
+
uri_for = ->(obj) { obj == survey ? 'rails-for-begginers' : nil }
|
28
|
+
|
29
|
+
xapi = SurveyEnded.new(repository, uri_for).call(actor_id: 123, resource_id: 456)
|
30
|
+
|
31
|
+
expect(xapi).to be_a Xapi::Statement
|
32
|
+
expect_actor(xapi.actor, name: 'John Doe', email: 'john@doe.com')
|
33
|
+
expect(xapi.verb).to eq Verbs::COMPLETED
|
34
|
+
|
35
|
+
expect(xapi.object).to be_a Xapi::Activity
|
36
|
+
expect(xapi.object.object_type).to eq 'Activity'
|
37
|
+
expect(xapi.object.id).to eq 'rails-for-begginers'
|
38
|
+
expect(xapi.object.definition.type).to eq 'http://adlnet.gov/expapi/activities/assessment'
|
39
|
+
expect(xapi.object.definition.name).to eq({'en-US' => 'Rails for Beginners'})
|
40
|
+
expect(xapi.object.definition.description).to eq({'en-US' => 'Seems easy'})
|
41
|
+
expect(xapi.object.definition.extensions.fetch('http://id.tincanapi.com/extension/target')).to eq('a6ad5226-7d8b-4108-9cc9-f0821de150f5')
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module PupilfirstXapi
|
4
|
+
module Statements
|
5
|
+
RSpec.describe SurveyStarted do
|
6
|
+
it do
|
7
|
+
john = double(:john, name: 'John Doe', email: 'john@doe.com')
|
8
|
+
survey = double(
|
9
|
+
:survey,
|
10
|
+
name: 'Rails for Beginners',
|
11
|
+
external_name: 'Seems easy',
|
12
|
+
slug: 'a6ad5226-7d8b-4108-9cc9-f0821de150f5',
|
13
|
+
created_at: 1.week.ago,
|
14
|
+
ends_at: nil,
|
15
|
+
targets: [
|
16
|
+
double(:target, title: '1st target', description: 'Seems easy'),
|
17
|
+
double(:target, title: '2nd target', description: 'Seems not easy')
|
18
|
+
]
|
19
|
+
)
|
20
|
+
|
21
|
+
data = {
|
22
|
+
survey: { 456 => survey },
|
23
|
+
user: { 123 => john }
|
24
|
+
}
|
25
|
+
|
26
|
+
repository = ->(klass, resource_id) { data.dig(klass, resource_id) }
|
27
|
+
uri_for = ->(obj) { obj == survey ? 'rails-for-begginers' : nil }
|
28
|
+
|
29
|
+
xapi = SurveyStarted.new(repository, uri_for).call(actor_id: 123, resource_id: 456)
|
30
|
+
|
31
|
+
expect(xapi).to be_a Xapi::Statement
|
32
|
+
expect_actor(xapi.actor, name: 'John Doe', email: 'john@doe.com')
|
33
|
+
expect(xapi.verb).to eq Verbs::STARTED
|
34
|
+
|
35
|
+
expect(xapi.object).to be_a Xapi::Activity
|
36
|
+
expect(xapi.object.object_type).to eq 'Activity'
|
37
|
+
expect(xapi.object.id).to eq 'rails-for-begginers'
|
38
|
+
expect(xapi.object.definition.type).to eq 'http://adlnet.gov/expapi/activities/assessment'
|
39
|
+
expect(xapi.object.definition.name).to eq({'en-US' => 'Rails for Beginners'})
|
40
|
+
expect(xapi.object.definition.description).to eq({'en-US' => 'Seems easy'})
|
41
|
+
expect(xapi.object.definition.extensions.fetch('http://id.tincanapi.com/extension/target')).to eq('a6ad5226-7d8b-4108-9cc9-f0821de150f5')
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pupilfirst_xapi
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- GrowthTribe
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-08-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -94,15 +94,23 @@ files:
|
|
94
94
|
- lib/pupilfirst_xapi/actors.rb
|
95
95
|
- lib/pupilfirst_xapi/lrs.rb
|
96
96
|
- lib/pupilfirst_xapi/objects.rb
|
97
|
+
- lib/pupilfirst_xapi/objects/answer.rb
|
97
98
|
- lib/pupilfirst_xapi/objects/builder.rb
|
98
99
|
- lib/pupilfirst_xapi/objects/course.rb
|
100
|
+
- lib/pupilfirst_xapi/objects/survey.rb
|
101
|
+
- lib/pupilfirst_xapi/objects/survey_end.rb
|
102
|
+
- lib/pupilfirst_xapi/objects/survey_start.rb
|
99
103
|
- lib/pupilfirst_xapi/objects/target.rb
|
100
104
|
- lib/pupilfirst_xapi/objects/video_end.rb
|
101
105
|
- lib/pupilfirst_xapi/objects/video_start.rb
|
102
106
|
- lib/pupilfirst_xapi/outbox.rb
|
103
107
|
- lib/pupilfirst_xapi/statements.rb
|
108
|
+
- lib/pupilfirst_xapi/statements/capability_result_viewed.rb
|
104
109
|
- lib/pupilfirst_xapi/statements/course_completed.rb
|
105
110
|
- lib/pupilfirst_xapi/statements/course_registered.rb
|
111
|
+
- lib/pupilfirst_xapi/statements/question_answered.rb
|
112
|
+
- lib/pupilfirst_xapi/statements/survey_ended.rb
|
113
|
+
- lib/pupilfirst_xapi/statements/survey_started.rb
|
106
114
|
- lib/pupilfirst_xapi/statements/target_completed.rb
|
107
115
|
- lib/pupilfirst_xapi/statements/video_ended.rb
|
108
116
|
- lib/pupilfirst_xapi/statements/video_started.rb
|
@@ -114,8 +122,12 @@ files:
|
|
114
122
|
- spec/outbox_spec.rb
|
115
123
|
- spec/rails_helper.rb
|
116
124
|
- spec/spec_helper.rb
|
125
|
+
- spec/statements/capability_result_viewed_spec.rb
|
117
126
|
- spec/statements/course_completed_spec.rb
|
118
127
|
- spec/statements/course_registered_spec.rb
|
128
|
+
- spec/statements/question_answered_spec.rb
|
129
|
+
- spec/statements/survey_ended_spec.rb
|
130
|
+
- spec/statements/survey_started_spec.rb
|
119
131
|
- spec/statements/target_completed_spec.rb
|
120
132
|
homepage: https://github.com/growthtribeacademy/pupilfirst-xapi
|
121
133
|
licenses:
|
@@ -139,17 +151,21 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
139
151
|
- !ruby/object:Gem::Version
|
140
152
|
version: '0'
|
141
153
|
requirements: []
|
142
|
-
rubygems_version: 3.
|
154
|
+
rubygems_version: 3.2.15
|
143
155
|
signing_key:
|
144
156
|
specification_version: 4
|
145
157
|
summary: XAPI statements generator and publisher to LRS for Pupilfirst
|
146
158
|
test_files:
|
159
|
+
- spec/integration_spec.rb
|
147
160
|
- spec/objects/builder_spec.rb
|
161
|
+
- spec/outbox_job_spec.rb
|
162
|
+
- spec/outbox_spec.rb
|
148
163
|
- spec/rails_helper.rb
|
149
|
-
- spec/
|
164
|
+
- spec/spec_helper.rb
|
165
|
+
- spec/statements/capability_result_viewed_spec.rb
|
150
166
|
- spec/statements/course_completed_spec.rb
|
151
167
|
- spec/statements/course_registered_spec.rb
|
152
|
-
- spec/
|
153
|
-
- spec/
|
154
|
-
- spec/
|
155
|
-
- spec/
|
168
|
+
- spec/statements/question_answered_spec.rb
|
169
|
+
- spec/statements/survey_ended_spec.rb
|
170
|
+
- spec/statements/survey_started_spec.rb
|
171
|
+
- spec/statements/target_completed_spec.rb
|