pupilfirst_xapi 0.3.2 → 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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: bdb9ed6c9957df10e29f9f8fac0d5a303ac6ed5f962d78bb27af84be1255f61d
4
- data.tar.gz: 361c1a5767d137ee50a99a191bb9906b1ca295bf6074e2c3568b80a5cf5121ce
3
+ metadata.gz: 9671a7b657ac2a6a5db9b4988b50f069d24bde84e08f722e17c9e510f0990f88
4
+ data.tar.gz: 1eb93f047df91dc644ee65372d6a163d732c1d64e3763189de793fdd60ccbe2a
5
5
  SHA512:
6
- metadata.gz: ab2a1cba32a1cdc99afeabb7bffc99b022a695989817ac8fe27e7f11894635dedc7befa6a88308af5660ddae6cf9aec8a4d97270bf45e9fb17263eb710d8aa61
7
- data.tar.gz: e58f22380039a0235534988affdaaa4f01b208b83e43857908d62e20c17d636b548b9a8da96a616e0bb9d1ed03a77b5627488d5c3d0e0bf8e560d658bcc2d24b
6
+ metadata.gz: 69254b39c819d27d967c005fb6a91f648527cd78abadd17a2ae8b1e51294d56d2a1e9392d58671b2eb617511cfe5884a2565e73ca26f35304c0f68463c814db1
7
+ data.tar.gz: 9bf904d914c4ad290be96ca7a17fbae1d0cf0aec40f0dfe50e31201291c86942741d010b2cc17c3a103303aa6c776ceb4f2a7f5d550026b49b12b5b4b6f40cf6
@@ -1,6 +1,12 @@
1
1
  require_relative 'objects/builder'
2
2
  require_relative 'objects/course'
3
3
  require_relative 'objects/target'
4
+ require_relative 'objects/video_start'
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'
4
10
 
5
11
  module PupilfirstXapi
6
12
  module Objects
@@ -11,5 +17,29 @@ module PupilfirstXapi
11
17
  def self.target(target, uri_for)
12
18
  Target.new.call(target, uri_for)
13
19
  end
20
+
21
+ def self.video_start(target, uri_for)
22
+ VideoStart.new.call(target, uri_for)
23
+ end
24
+
25
+ def self.video_end(target, uri_for)
26
+ VideoEnd.new.call(target, uri_for)
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
14
44
  end
15
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
@@ -0,0 +1,16 @@
1
+ module PupilfirstXapi
2
+ module Objects
3
+ class VideoEnd
4
+ def call(target, uri_for)
5
+ target_uri = uri_for.call(target)
6
+
7
+ Builder.new(
8
+ id: target_uri,
9
+ type: "http://activitystrea.ms/schema/1.0/event",
10
+ name: "video in #{target.title}",
11
+ description: target.description
12
+ ).call
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,16 @@
1
+ module PupilfirstXapi
2
+ module Objects
3
+ class VideoStart
4
+ def call(target, uri_for)
5
+ target_uri = uri_for.call(target)
6
+
7
+ Builder.new(
8
+ id: target_uri,
9
+ type: "http://activitystrea.ms/schema/1.0/event",
10
+ name: "video in #{target.title}",
11
+ description: target.description
12
+ ).call
13
+ end
14
+ end
15
+ end
16
+ end
@@ -1,6 +1,12 @@
1
1
  require "pupilfirst_xapi/statements/course_completed"
2
2
  require "pupilfirst_xapi/statements/course_registered"
3
3
  require "pupilfirst_xapi/statements/target_completed"
4
+ require "pupilfirst_xapi/statements/video_started"
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"
4
10
 
5
11
  module PupilfirstXapi
6
12
  module Statements
@@ -17,6 +23,12 @@ module PupilfirstXapi
17
23
  :student_added => CourseRegistered,
18
24
  :submission_graded => TargetCompleted,
19
25
  :submission_automatically_verified => TargetCompleted,
26
+ :video_started => VideoStarted,
27
+ :video_ended => VideoEnded,
28
+ :survey_started => SurveyStarted,
29
+ :survey_ended => SurveyEnded,
30
+ :capability_result_viewed => CapabilityResultViewed,
31
+ :question_answered => QuestionAnswered
20
32
  }
21
33
  end
22
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
@@ -0,0 +1,20 @@
1
+ module PupilfirstXapi
2
+ module Statements
3
+ class VideoEnded
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
+ target = @repository.call(:target, resource_id)
12
+ Xapi.create_statement(
13
+ actor: Actors.agent(actor),
14
+ verb: Verbs::VIDEO_ENDED,
15
+ object: Objects.video_end(target, @uri_for)
16
+ )
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,20 @@
1
+ module PupilfirstXapi
2
+ module Statements
3
+ class VideoStarted
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
+ target = @repository.call(:target, resource_id)
12
+ Xapi.create_statement(
13
+ actor: Actors.agent(actor),
14
+ verb: Verbs::VIDEO_STARTED,
15
+ object: Objects.video_start(target, @uri_for)
16
+ )
17
+ end
18
+ end
19
+ end
20
+ end
@@ -3,5 +3,10 @@ module PupilfirstXapi
3
3
  COMPLETED = Xapi.create_verb(id: 'http://adlnet.gov/expapi/verbs/completed', name: 'completed')
4
4
  COMPLETED_ASSIGNMENT = Xapi.create_verb(id: 'https://w3id.org/xapi/dod-isd/verbs/completed-assignment', name: 'completed assignment')
5
5
  REGISTERED = Xapi.create_verb(id: 'http://adlnet.gov/expapi/verbs/registered', name: 'registered')
6
+ VIDEO_STARTED = Xapi.create_verb(id: 'http://activitystrea.ms/schema/1.0/start', name: 'start')
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')
6
11
  end
7
12
  end
@@ -1,3 +1,3 @@
1
1
  module PupilfirstXapi
2
- VERSION = '0.3.2'
2
+ VERSION = '0.3.8'
3
3
  end
@@ -108,12 +108,14 @@ RSpec.describe "#xapi", type: :job, perform_jobs: true do
108
108
  resource_id: ror_guides.id,
109
109
  actor_id: john.id,
110
110
  )
111
- expect(PupilfirstXapi::Outbox::Job).to have_been_performed.with({
112
- event_type: :course_completed,
113
- actor_id: 123,
114
- resource_id: 1234,
115
- timestamp: timestamp,
116
- })
111
+ expect(PupilfirstXapi::Outbox::Job).to have_been_performed.with(
112
+ hash_including({
113
+ event_type: :course_completed,
114
+ actor_id: 123,
115
+ resource_id: 1234,
116
+ })
117
+ )
118
+
117
119
  expect(request).to have_been_requested
118
120
  end
119
121
  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,22 +1,19 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pupilfirst_xapi
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.3.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - GrowthTribe
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-05-17 00:00:00.000000000 Z
11
+ date: 2021-08-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: 6.0.3
20
17
  - - ">="
21
18
  - !ruby/object:Gem::Version
22
19
  version: 6.0.3.4
@@ -24,9 +21,6 @@ dependencies:
24
21
  prerelease: false
25
22
  version_requirements: !ruby/object:Gem::Requirement
26
23
  requirements:
27
- - - "~>"
28
- - !ruby/object:Gem::Version
29
- version: 6.0.3
30
24
  - - ">="
31
25
  - !ruby/object:Gem::Version
32
26
  version: 6.0.3.4
@@ -86,7 +80,7 @@ dependencies:
86
80
  - - ">="
87
81
  - !ruby/object:Gem::Version
88
82
  version: '0'
89
- description:
83
+ description:
90
84
  email:
91
85
  - devs@growthtribe.io
92
86
  executables: []
@@ -100,14 +94,26 @@ files:
100
94
  - lib/pupilfirst_xapi/actors.rb
101
95
  - lib/pupilfirst_xapi/lrs.rb
102
96
  - lib/pupilfirst_xapi/objects.rb
97
+ - lib/pupilfirst_xapi/objects/answer.rb
103
98
  - lib/pupilfirst_xapi/objects/builder.rb
104
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
105
103
  - lib/pupilfirst_xapi/objects/target.rb
104
+ - lib/pupilfirst_xapi/objects/video_end.rb
105
+ - lib/pupilfirst_xapi/objects/video_start.rb
106
106
  - lib/pupilfirst_xapi/outbox.rb
107
107
  - lib/pupilfirst_xapi/statements.rb
108
+ - lib/pupilfirst_xapi/statements/capability_result_viewed.rb
108
109
  - lib/pupilfirst_xapi/statements/course_completed.rb
109
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
110
114
  - lib/pupilfirst_xapi/statements/target_completed.rb
115
+ - lib/pupilfirst_xapi/statements/video_ended.rb
116
+ - lib/pupilfirst_xapi/statements/video_started.rb
111
117
  - lib/pupilfirst_xapi/verbs.rb
112
118
  - lib/pupilfirst_xapi/version.rb
113
119
  - spec/integration_spec.rb
@@ -116,8 +122,12 @@ files:
116
122
  - spec/outbox_spec.rb
117
123
  - spec/rails_helper.rb
118
124
  - spec/spec_helper.rb
125
+ - spec/statements/capability_result_viewed_spec.rb
119
126
  - spec/statements/course_completed_spec.rb
120
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
121
131
  - spec/statements/target_completed_spec.rb
122
132
  homepage: https://github.com/growthtribeacademy/pupilfirst-xapi
123
133
  licenses:
@@ -126,7 +136,7 @@ metadata:
126
136
  homepage_uri: https://github.com/growthtribeacademy/pupilfirst-xapi
127
137
  source_code_uri: https://github.com/growthtribeacademy/pupilfirst-xapi/pupilfirst_xapi
128
138
  changelog_uri: https://github.com/growthtribeacademy/pupilfirst-xapi/pupilfirst_xapi/CHANGELOG.md
129
- post_install_message:
139
+ post_install_message:
130
140
  rdoc_options: []
131
141
  require_paths:
132
142
  - lib
@@ -141,8 +151,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
141
151
  - !ruby/object:Gem::Version
142
152
  version: '0'
143
153
  requirements: []
144
- rubygems_version: 3.2.3
145
- signing_key:
154
+ rubygems_version: 3.2.15
155
+ signing_key:
146
156
  specification_version: 4
147
157
  summary: XAPI statements generator and publisher to LRS for Pupilfirst
148
158
  test_files:
@@ -152,6 +162,10 @@ test_files:
152
162
  - spec/outbox_spec.rb
153
163
  - spec/rails_helper.rb
154
164
  - spec/spec_helper.rb
165
+ - spec/statements/capability_result_viewed_spec.rb
155
166
  - spec/statements/course_completed_spec.rb
156
167
  - spec/statements/course_registered_spec.rb
168
+ - spec/statements/question_answered_spec.rb
169
+ - spec/statements/survey_ended_spec.rb
170
+ - spec/statements/survey_started_spec.rb
157
171
  - spec/statements/target_completed_spec.rb