scorm_engine 0.7.0 → 0.8.1
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/scorm_engine/api/endpoints.rb +4 -0
- data/lib/scorm_engine/api/endpoints/configuration.rb +64 -0
- data/lib/scorm_engine/api/endpoints/courses/configuration.rb +1 -1
- data/lib/scorm_engine/api/endpoints/dispatches.rb +45 -2
- data/lib/scorm_engine/api/endpoints/registrations/configuration.rb +1 -1
- data/lib/scorm_engine/api/endpoints/tenants/configuration.rb +108 -0
- data/lib/scorm_engine/configuration.rb +4 -2
- data/lib/scorm_engine/faraday/connection.rb +10 -4
- data/lib/scorm_engine/faraday/request.rb +17 -4
- data/lib/scorm_engine/models.rb +2 -0
- data/lib/scorm_engine/models/dispatch_registration_count.rb +49 -0
- data/lib/scorm_engine/models/tenant_configuration.rb +34 -0
- data/lib/scorm_engine/version.rb +1 -1
- data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Configuration/_get_app_configuration/is_successful.yml +64 -0
- data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Configuration/_get_app_configuration/returns_settings_and_values.yml +64 -0
- data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Configuration/_post_app_configuration/fails_when_settings_are_invalid.yml +48 -0
- data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Configuration/_post_app_configuration/is_successful.yml +44 -0
- data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Configuration/_post_app_configuration/persists_the_settings.yml +207 -0
- data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Courses_Import/_get_course_import/successful_imports/works.yml +6 -6
- data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Courses_Import/_get_course_import/unsuccessful_imports/fails_to_import_given_an_invalid_url.yml +7 -7
- data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Courses_Import/_post_course_import/unsuccessful_imports/fails_to_import_a_previously_existing_course.yml +2 -2
- data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Dispatches/_delete_dispatch_registration_count/is_successful.yml +30 -0
- data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Dispatches/_delete_dispatch_registration_count/succeeds_even_when_id_is_invalid.yml +30 -0
- data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Dispatches/_get_dispatch_registration_count/fails_when_id_is_invalid.yml +63 -0
- data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Dispatches/_get_dispatch_registration_count/is_successful.yml +63 -0
- data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Dispatches/_get_dispatch_registration_count/results/sucessfully_creates_the_dispatch_attributes.yml +63 -0
- data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Dispatches/_get_dispatch_registration_count/when_dispatch_has_registrations/knows_it_s_registration_count.yml +63 -0
- data/spec/scorm_engine/api/endpoints/configuration_spec.rb +51 -0
- data/spec/scorm_engine/api/endpoints/courses/import_spec.rb +1 -1
- data/spec/scorm_engine/api/endpoints/dispatches_spec.rb +47 -1
- data/spec/scorm_engine/api/endpoints/tenants/configuration_spec.rb +126 -0
- data/spec/scorm_engine/faraday/connection_spec.rb +23 -5
- data/spec/scorm_engine/models/dispatch_registration_count_spec.rb +42 -0
- data/spec/scorm_engine/models/tenant_configuration_spec.rb +16 -0
- data/spec/support/scorm_engine.rb +1 -1
- data/spec/support/vcr.rb +1 -0
- metadata +33 -12
@@ -45,7 +45,7 @@ RSpec.describe ScormEngine::Api::Endpoints::Courses::Import do
|
|
45
45
|
describe "successful imports" do
|
46
46
|
it "works with a :url" do
|
47
47
|
against_real_scorm_engine do
|
48
|
-
import = import_course(client: subject, course_id: "testing-url-123", url: "https://github.com/
|
48
|
+
import = import_course(client: subject, course_id: "testing-url-123", url: "https://github.com/instructure-bridge/scorm_engine/raw/master/spec/fixtures/zip/RuntimeBasicCalls_SCORM20043rdEdition.zip")
|
49
49
|
aggregate_failures do
|
50
50
|
expect(import.success?).to eq true
|
51
51
|
expect(import.result.complete?).to eq true
|
@@ -271,7 +271,7 @@ RSpec.describe ScormEngine::Api::Endpoints::Dispatches do
|
|
271
271
|
end
|
272
272
|
|
273
273
|
it "works when type is SCORM12" do
|
274
|
-
response = subject.get_dispatch_zip(dispatch_id: dispatch_options[:dispatch_id], type: "scorm12")
|
274
|
+
response = subject.get_dispatch_zip(dispatch_id: dispatch_options[:dispatch_id], type: "scorm12".freeze)
|
275
275
|
aggregate_failures do
|
276
276
|
expect(response.success?).to eq true
|
277
277
|
expect(response.result.type).to eq "SCORM12"
|
@@ -323,4 +323,50 @@ RSpec.describe ScormEngine::Api::Endpoints::Dispatches do
|
|
323
323
|
end
|
324
324
|
end
|
325
325
|
end
|
326
|
+
|
327
|
+
describe "#get_dispatch_registration_count" do
|
328
|
+
before do
|
329
|
+
subject.delete_dispatch_registration_count(dispatch_id: dispatch_options[:dispatch_id])
|
330
|
+
end
|
331
|
+
|
332
|
+
let(:response) { subject.get_dispatch_registration_count(dispatch_id: dispatch_options[:dispatch_id]) }
|
333
|
+
|
334
|
+
it "is successful" do
|
335
|
+
expect(response.success?).to eq true
|
336
|
+
end
|
337
|
+
|
338
|
+
describe "results" do
|
339
|
+
it "sucessfully creates the dispatch attributes" do
|
340
|
+
dispatch = response.result
|
341
|
+
aggregate_failures do
|
342
|
+
expect(dispatch.id).to eq dispatch_options[:dispatch_id]
|
343
|
+
expect(dispatch.registration_count).to eq 0
|
344
|
+
expect(dispatch.last_reset_at).to be_a(Time)
|
345
|
+
end
|
346
|
+
end
|
347
|
+
end
|
348
|
+
|
349
|
+
it "fails when id is invalid" do
|
350
|
+
response = subject.get_dispatch_registration_count(dispatch_id: "nonexistent-dispatch")
|
351
|
+
aggregate_failures do
|
352
|
+
expect(response.success?).to eq false
|
353
|
+
expect(response.status).to eq 404
|
354
|
+
expect(response.message).to match(/No dispatches found with ID: nonexistent-dispatch/)
|
355
|
+
expect(response.result).to eq nil
|
356
|
+
end
|
357
|
+
end
|
358
|
+
end
|
359
|
+
|
360
|
+
describe "#delete_dispatch_registration_count" do
|
361
|
+
let(:response) { subject.delete_dispatch_registration_count(dispatch_id: dispatch_options[:dispatch_id]) }
|
362
|
+
|
363
|
+
it "is successful" do
|
364
|
+
expect(response.success?).to eq true
|
365
|
+
end
|
366
|
+
|
367
|
+
it "succeeds even when id is invalid" do
|
368
|
+
response = subject.delete_dispatch_registration_count(dispatch_id: "nonexistent-dispatch")
|
369
|
+
expect(response.success?).to eq true
|
370
|
+
end
|
371
|
+
end
|
326
372
|
end
|
@@ -0,0 +1,126 @@
|
|
1
|
+
#
|
2
|
+
# NOTE: This spec will only run if a real scorm engine is available!
|
3
|
+
# This is because the results returned expose sensitive information
|
4
|
+
# and we'd rather they not get cached to VCR fixtures.
|
5
|
+
#
|
6
|
+
RSpec.describe ScormEngine::Api::Endpoints::Tenants::Configuration do
|
7
|
+
around do |example|
|
8
|
+
if scorm_engine_is_available?
|
9
|
+
VCR.turned_off do
|
10
|
+
example.run
|
11
|
+
end
|
12
|
+
else
|
13
|
+
warn "Not running because SCORM engine is not truly available."
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
let(:subject) { scorm_engine_client }
|
18
|
+
|
19
|
+
describe "#get_tenant_configuration" do
|
20
|
+
let(:response) { subject.get_tenant_configuration }
|
21
|
+
|
22
|
+
it "is successful" do
|
23
|
+
expect(response.success?).to eq true
|
24
|
+
end
|
25
|
+
|
26
|
+
describe "results" do
|
27
|
+
it "makes settings available as key/value pairs" do
|
28
|
+
settings = response.result.settings
|
29
|
+
aggregate_failures do
|
30
|
+
# just a sampling
|
31
|
+
expect(settings.key?("ApiPostbackTimeoutSeconds")).to be_truthy
|
32
|
+
expect(settings.key?("ApiUseSignedLaunchLinks")).to be_truthy
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
describe "#post_tenant_configuration" do
|
39
|
+
let(:response) {
|
40
|
+
subject.post_tenant_configuration(
|
41
|
+
settings: { "ApiPostbackTimeoutSeconds" => "15",
|
42
|
+
"ApiUseSignedLaunchLinks" => "true" }
|
43
|
+
)
|
44
|
+
}
|
45
|
+
|
46
|
+
it "is successful" do
|
47
|
+
expect(response.success?).to eq true
|
48
|
+
end
|
49
|
+
|
50
|
+
it "persists the settings" do
|
51
|
+
response # trigger the api
|
52
|
+
sleep 30
|
53
|
+
|
54
|
+
configuration = subject.get_tenant_configuration.result
|
55
|
+
expect(configuration.settings["ApiPostbackTimeoutSeconds"]).to eq "15"
|
56
|
+
expect(configuration.settings["ApiUseSignedLaunchLinks"]).to eq "true"
|
57
|
+
|
58
|
+
subject.post_tenant_configuration(
|
59
|
+
settings: { "ApiPostbackTimeoutSeconds" => "20",
|
60
|
+
"ApiUseSignedLaunchLinks" => "false" }
|
61
|
+
)
|
62
|
+
sleep 30
|
63
|
+
|
64
|
+
configuration = subject.get_tenant_configuration.result
|
65
|
+
expect(configuration.settings["ApiPostbackTimeoutSeconds"]).to eq "20"
|
66
|
+
expect(configuration.settings["ApiUseSignedLaunchLinks"]).to eq "false"
|
67
|
+
end
|
68
|
+
|
69
|
+
it "fails when settings are invalid" do
|
70
|
+
response = subject.post_tenant_configuration(settings: { "NonExistentSettingTotesBogus" => "YES" })
|
71
|
+
expect(response.success?).to eq false
|
72
|
+
expect(response.status).to eq 400
|
73
|
+
expect(response.message).to match(/No configuration setting found with id.*NonExistentSettingTotesBogus/)
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
describe "#get_tenant_configuration_setting" do
|
78
|
+
let(:response) {
|
79
|
+
subject.put_tenant_configuration_setting(setting_id: "ApiPostbackTimeoutSeconds", value: 42)
|
80
|
+
sleep 30
|
81
|
+
subject.get_tenant_configuration_setting(setting_id: "ApiPostbackTimeoutSeconds")
|
82
|
+
}
|
83
|
+
|
84
|
+
it "is successful" do
|
85
|
+
expect(response.success?).to eq true
|
86
|
+
end
|
87
|
+
|
88
|
+
describe "results" do
|
89
|
+
it "returns the value as a string" do
|
90
|
+
expect(response.result).to eq "42"
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
94
|
+
it "fails when setting_id is invalid" do
|
95
|
+
response = subject.get_tenant_configuration_setting(setting_id: "NonExistentSettingTotesBogus")
|
96
|
+
expect(response.success?).to eq false
|
97
|
+
expect(response.status).to eq 400
|
98
|
+
expect(response.message).to match(/No configuration setting found with id.*NonExistentSettingTotesBogus/)
|
99
|
+
expect(response.result).to eq nil
|
100
|
+
end
|
101
|
+
end
|
102
|
+
|
103
|
+
describe "#put_tenant_configuration_setting" do
|
104
|
+
let(:response) { subject.put_tenant_configuration_setting(setting_id: "ApiPostbackTimeoutSeconds", value: 99) }
|
105
|
+
|
106
|
+
it "is successful" do
|
107
|
+
expect(response.success?).to eq true
|
108
|
+
end
|
109
|
+
|
110
|
+
describe "results" do
|
111
|
+
it "persists the changes" do
|
112
|
+
response # trigger the api
|
113
|
+
subject.put_tenant_configuration_setting(setting_id: "ApiPostbackTimeoutSeconds", value: 100)
|
114
|
+
new_response = subject.get_tenant_configuration_setting(setting_id: "ApiPostbackTimeoutSeconds")
|
115
|
+
expect(new_response.result).to eq "100"
|
116
|
+
end
|
117
|
+
end
|
118
|
+
|
119
|
+
it "fails when setting_id is invalid" do
|
120
|
+
response = subject.get_tenant_configuration_setting(setting_id: "NonExistentSettingTotesBogus", value: "42")
|
121
|
+
expect(response.success?).to eq false
|
122
|
+
expect(response.status).to eq 400
|
123
|
+
expect(response.message).to match(/No configuration setting found with id.*NonExistentSettingTotesBogus/)
|
124
|
+
end
|
125
|
+
end
|
126
|
+
end
|
@@ -8,14 +8,32 @@ RSpec.describe ScormEngine::Faraday::Connection do
|
|
8
8
|
end
|
9
9
|
|
10
10
|
describe "#base_uri" do
|
11
|
-
|
11
|
+
{
|
12
|
+
1 => "https://scorm.engine/ScormEngineInterface/api/v1/",
|
13
|
+
2 => "https://scorm.engine/ScormEngineInterface/api/v2/",
|
14
|
+
}.each do |version, expected_url|
|
15
|
+
context "with version #{version}" do
|
16
|
+
let(:uri) { scorm_engine_client.base_uri(version: version) }
|
12
17
|
|
13
|
-
|
14
|
-
|
18
|
+
it "returns a URI::HTTPS instance" do
|
19
|
+
expect(uri).to be_a(URI::HTTPS)
|
20
|
+
end
|
21
|
+
|
22
|
+
it "is correct given the configuration" do
|
23
|
+
expect(uri.to_s).to eq expected_url
|
24
|
+
end
|
25
|
+
end
|
15
26
|
end
|
27
|
+
end
|
28
|
+
|
29
|
+
describe "#connection" do
|
30
|
+
describe "version" do
|
31
|
+
it "passes on to #base_uri" do
|
32
|
+
client = ScormEngine::Client.new(tenant: "test")
|
16
33
|
|
17
|
-
|
18
|
-
|
34
|
+
expect(client).to receive(:base_uri).with(version: 2).and_call_original
|
35
|
+
client.send(:connection, { version: 2 })
|
36
|
+
end
|
19
37
|
end
|
20
38
|
end
|
21
39
|
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
RSpec.describe ScormEngine::Models::DispatchRegistrationCount do
|
2
|
+
describe ".new_from_api" do
|
3
|
+
describe ":id" do
|
4
|
+
it "is set" do
|
5
|
+
dispatch = described_class.new_from_api(
|
6
|
+
"id" => "dispatch-id"
|
7
|
+
)
|
8
|
+
expect(dispatch.id).to eq "dispatch-id"
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
describe ":registration_count" do
|
13
|
+
it "is set" do
|
14
|
+
dispatch = described_class.new_from_api(
|
15
|
+
"registrationCount" => "456"
|
16
|
+
)
|
17
|
+
expect(dispatch.registration_count).to eq 456
|
18
|
+
end
|
19
|
+
|
20
|
+
it "is set to zero when not an integer" do
|
21
|
+
dispatch = described_class.new_from_api(
|
22
|
+
"registrationCount" => "oops"
|
23
|
+
)
|
24
|
+
expect(dispatch.registration_count).to eq 0
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
describe ":last_reset_at" do
|
29
|
+
it "is set" do
|
30
|
+
dispatch = described_class.new_from_api(
|
31
|
+
"lastResetTime" => "2018-05-24T08:09:10Z"
|
32
|
+
)
|
33
|
+
expect(dispatch.last_reset_at).to eq Time.new(2018, 5, 24, 8, 9, 10, 0)
|
34
|
+
end
|
35
|
+
|
36
|
+
it "is set to nil if blank" do
|
37
|
+
dispatch = described_class.new_from_api({})
|
38
|
+
expect(dispatch.last_reset_at).to eq nil
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
RSpec.describe ScormEngine::Models::TenantConfiguration do
|
2
|
+
describe ".new_from_api" do
|
3
|
+
describe ":settings" do
|
4
|
+
it "a hash built from configurationItems" do
|
5
|
+
config = described_class.new_from_api(
|
6
|
+
"configurationItems" => [
|
7
|
+
{ "id" => "Foo", "value" => "YES" },
|
8
|
+
{ "id" => "Bar", "value" => "123" },
|
9
|
+
]
|
10
|
+
)
|
11
|
+
expect(config.settings["Foo"]).to eq "YES"
|
12
|
+
expect(config.settings["Bar"]).to eq "123"
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -49,7 +49,7 @@ module ScormEngineHelpers
|
|
49
49
|
if options[:pathname]
|
50
50
|
import_options[:pathname] = options[:pathname]
|
51
51
|
else
|
52
|
-
import_options[:url] = "https://github.com/
|
52
|
+
import_options[:url] = "https://github.com/instructure-bridge/scorm_engine/raw/master/spec/fixtures/zip/#{options[:key]}.zip"
|
53
53
|
end
|
54
54
|
|
55
55
|
import = options[:client].post_course_import(import_options)
|
data/spec/support/vcr.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: scorm_engine
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.8.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Philip Hallstrom
|
8
|
+
- Mel Green
|
8
9
|
autorequire:
|
9
10
|
bindir: exe
|
10
11
|
cert_chain: []
|
11
|
-
date:
|
12
|
+
date: 2020-09-18 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: faraday
|
@@ -16,14 +17,14 @@ dependencies:
|
|
16
17
|
requirements:
|
17
18
|
- - "~>"
|
18
19
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.12
|
20
|
+
version: '0.12'
|
20
21
|
type: :runtime
|
21
22
|
prerelease: false
|
22
23
|
version_requirements: !ruby/object:Gem::Requirement
|
23
24
|
requirements:
|
24
25
|
- - "~>"
|
25
26
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.12
|
27
|
+
version: '0.12'
|
27
28
|
- !ruby/object:Gem::Dependency
|
28
29
|
name: faraday_middleware
|
29
30
|
requirement: !ruby/object:Gem::Requirement
|
@@ -86,14 +87,14 @@ dependencies:
|
|
86
87
|
requirements:
|
87
88
|
- - "~>"
|
88
89
|
- !ruby/object:Gem::Version
|
89
|
-
version: '
|
90
|
+
version: '13.0'
|
90
91
|
type: :development
|
91
92
|
prerelease: false
|
92
93
|
version_requirements: !ruby/object:Gem::Requirement
|
93
94
|
requirements:
|
94
95
|
- - "~>"
|
95
96
|
- !ruby/object:Gem::Version
|
96
|
-
version: '
|
97
|
+
version: '13.0'
|
97
98
|
- !ruby/object:Gem::Dependency
|
98
99
|
name: rspec
|
99
100
|
requirement: !ruby/object:Gem::Requirement
|
@@ -128,14 +129,14 @@ dependencies:
|
|
128
129
|
requirements:
|
129
130
|
- - "~>"
|
130
131
|
- !ruby/object:Gem::Version
|
131
|
-
version: '
|
132
|
+
version: '2.3'
|
132
133
|
type: :development
|
133
134
|
prerelease: false
|
134
135
|
version_requirements: !ruby/object:Gem::Requirement
|
135
136
|
requirements:
|
136
137
|
- - "~>"
|
137
138
|
- !ruby/object:Gem::Version
|
138
|
-
version: '
|
139
|
+
version: '2.3'
|
139
140
|
- !ruby/object:Gem::Dependency
|
140
141
|
name: vcr
|
141
142
|
requirement: !ruby/object:Gem::Requirement
|
@@ -164,9 +165,10 @@ dependencies:
|
|
164
165
|
- - "~>"
|
165
166
|
- !ruby/object:Gem::Version
|
166
167
|
version: '0.9'
|
167
|
-
description: Ruby Client for Rustici's SCORM Engine 2017.1 API
|
168
|
+
description: Ruby Client for Rustici's SCORM Engine 2017.1 & 20.1 API
|
168
169
|
email:
|
169
170
|
- phallstrom@instructure.com
|
171
|
+
- mgreen@instructure.com
|
170
172
|
executables: []
|
171
173
|
extensions: []
|
172
174
|
extra_rdoc_files: []
|
@@ -176,6 +178,7 @@ files:
|
|
176
178
|
- lib/scorm_engine.rb
|
177
179
|
- lib/scorm_engine/api/endpoints.rb
|
178
180
|
- lib/scorm_engine/api/endpoints/about.rb
|
181
|
+
- lib/scorm_engine/api/endpoints/configuration.rb
|
179
182
|
- lib/scorm_engine/api/endpoints/courses.rb
|
180
183
|
- lib/scorm_engine/api/endpoints/courses/configuration.rb
|
181
184
|
- lib/scorm_engine/api/endpoints/courses/import.rb
|
@@ -185,6 +188,7 @@ files:
|
|
185
188
|
- lib/scorm_engine/api/endpoints/registrations.rb
|
186
189
|
- lib/scorm_engine/api/endpoints/registrations/configuration.rb
|
187
190
|
- lib/scorm_engine/api/endpoints/registrations/launch_history.rb
|
191
|
+
- lib/scorm_engine/api/endpoints/tenants/configuration.rb
|
188
192
|
- lib/scorm_engine/client.rb
|
189
193
|
- lib/scorm_engine/configuration.rb
|
190
194
|
- lib/scorm_engine/faraday/connection.rb
|
@@ -196,6 +200,7 @@ files:
|
|
196
200
|
- lib/scorm_engine/models/course_import.rb
|
197
201
|
- lib/scorm_engine/models/destination.rb
|
198
202
|
- lib/scorm_engine/models/dispatch.rb
|
203
|
+
- lib/scorm_engine/models/dispatch_registration_count.rb
|
199
204
|
- lib/scorm_engine/models/dispatch_zip.rb
|
200
205
|
- lib/scorm_engine/models/learner.rb
|
201
206
|
- lib/scorm_engine/models/registration.rb
|
@@ -203,6 +208,7 @@ files:
|
|
203
208
|
- lib/scorm_engine/models/registration_configuration.rb
|
204
209
|
- lib/scorm_engine/models/registration_launch_history.rb
|
205
210
|
- lib/scorm_engine/models/registration_runtime_interaction.rb
|
211
|
+
- lib/scorm_engine/models/tenant_configuration.rb
|
206
212
|
- lib/scorm_engine/response.rb
|
207
213
|
- lib/scorm_engine/utils.rb
|
208
214
|
- lib/scorm_engine/version.rb
|
@@ -214,6 +220,11 @@ files:
|
|
214
220
|
- spec/fixtures/vcr/ScormEngine_Api_Endpoints_About/_get_about_user_count/is_successful.yml
|
215
221
|
- spec/fixtures/vcr/ScormEngine_Api_Endpoints_About/_get_about_user_count/tracks_combined_counts.yml
|
216
222
|
- spec/fixtures/vcr/ScormEngine_Api_Endpoints_About/_get_about_user_count/tracks_per_tenantcounts.yml
|
223
|
+
- spec/fixtures/vcr/ScormEngine_Api_Endpoints_Configuration/_get_app_configuration/is_successful.yml
|
224
|
+
- spec/fixtures/vcr/ScormEngine_Api_Endpoints_Configuration/_get_app_configuration/returns_settings_and_values.yml
|
225
|
+
- spec/fixtures/vcr/ScormEngine_Api_Endpoints_Configuration/_post_app_configuration/fails_when_settings_are_invalid.yml
|
226
|
+
- spec/fixtures/vcr/ScormEngine_Api_Endpoints_Configuration/_post_app_configuration/is_successful.yml
|
227
|
+
- spec/fixtures/vcr/ScormEngine_Api_Endpoints_Configuration/_post_app_configuration/persists_the_settings.yml
|
217
228
|
- spec/fixtures/vcr/ScormEngine_Api_Endpoints_Courses/_delete_course/fails_when_id_is_invalid.yml
|
218
229
|
- spec/fixtures/vcr/ScormEngine_Api_Endpoints_Courses/_delete_course/works.yml
|
219
230
|
- spec/fixtures/vcr/ScormEngine_Api_Endpoints_Courses/_get_course_detail/fails_when_id_is_invalid.yml
|
@@ -276,11 +287,17 @@ files:
|
|
276
287
|
- spec/fixtures/vcr/ScormEngine_Api_Endpoints_Destinations/_put_destination/results/sucessfully_creates_the_destination_attributes.yml
|
277
288
|
- spec/fixtures/vcr/ScormEngine_Api_Endpoints_Dispatches/_delete_dispatch/returns_success_even_when_id_is_invalid.yml
|
278
289
|
- spec/fixtures/vcr/ScormEngine_Api_Endpoints_Dispatches/_delete_dispatch/works.yml
|
290
|
+
- spec/fixtures/vcr/ScormEngine_Api_Endpoints_Dispatches/_delete_dispatch_registration_count/is_successful.yml
|
291
|
+
- spec/fixtures/vcr/ScormEngine_Api_Endpoints_Dispatches/_delete_dispatch_registration_count/succeeds_even_when_id_is_invalid.yml
|
279
292
|
- spec/fixtures/vcr/ScormEngine_Api_Endpoints_Dispatches/_get_dispatch/fails_when_id_is_invalid.yml
|
280
293
|
- spec/fixtures/vcr/ScormEngine_Api_Endpoints_Dispatches/_get_dispatch/is_successful.yml
|
281
294
|
- spec/fixtures/vcr/ScormEngine_Api_Endpoints_Dispatches/_get_dispatch/results/sucessfully_creates_the_dispatch_attributes.yml
|
282
295
|
- spec/fixtures/vcr/ScormEngine_Api_Endpoints_Dispatches/_get_dispatch_enabled/is_false_when_disabled.yml
|
283
296
|
- spec/fixtures/vcr/ScormEngine_Api_Endpoints_Dispatches/_get_dispatch_enabled/is_true_when_enabled.yml
|
297
|
+
- spec/fixtures/vcr/ScormEngine_Api_Endpoints_Dispatches/_get_dispatch_registration_count/fails_when_id_is_invalid.yml
|
298
|
+
- spec/fixtures/vcr/ScormEngine_Api_Endpoints_Dispatches/_get_dispatch_registration_count/is_successful.yml
|
299
|
+
- spec/fixtures/vcr/ScormEngine_Api_Endpoints_Dispatches/_get_dispatch_registration_count/results/sucessfully_creates_the_dispatch_attributes.yml
|
300
|
+
- spec/fixtures/vcr/ScormEngine_Api_Endpoints_Dispatches/_get_dispatch_registration_count/when_dispatch_has_registrations/knows_it_s_registration_count.yml
|
284
301
|
- spec/fixtures/vcr/ScormEngine_Api_Endpoints_Dispatches/_get_dispatch_zip/fails_given_an_invalid_id.yml
|
285
302
|
- spec/fixtures/vcr/ScormEngine_Api_Endpoints_Dispatches/_get_dispatch_zip/fails_given_an_invalid_type.yml
|
286
303
|
- spec/fixtures/vcr/ScormEngine_Api_Endpoints_Dispatches/_get_dispatch_zip/works.yml
|
@@ -351,6 +368,7 @@ files:
|
|
351
368
|
- spec/fixtures/zip/Non-working SCORM.zip
|
352
369
|
- spec/fixtures/zip/RuntimeBasicCalls_SCORM20043rdEdition.zip
|
353
370
|
- spec/scorm_engine/api/endpoints/about_spec.rb
|
371
|
+
- spec/scorm_engine/api/endpoints/configuration_spec.rb
|
354
372
|
- spec/scorm_engine/api/endpoints/courses/configuration_spec.rb
|
355
373
|
- spec/scorm_engine/api/endpoints/courses/import_spec.rb
|
356
374
|
- spec/scorm_engine/api/endpoints/courses_spec.rb
|
@@ -360,6 +378,7 @@ files:
|
|
360
378
|
- spec/scorm_engine/api/endpoints/registrations/configuration_spec.rb
|
361
379
|
- spec/scorm_engine/api/endpoints/registrations/launch_history_spec.rb
|
362
380
|
- spec/scorm_engine/api/endpoints/registrations_spec.rb
|
381
|
+
- spec/scorm_engine/api/endpoints/tenants/configuration_spec.rb
|
363
382
|
- spec/scorm_engine/configuration_spec.rb
|
364
383
|
- spec/scorm_engine/faraday/connection_spec.rb
|
365
384
|
- spec/scorm_engine/models/base_spec.rb
|
@@ -367,6 +386,7 @@ files:
|
|
367
386
|
- spec/scorm_engine/models/course_import_spec.rb
|
368
387
|
- spec/scorm_engine/models/course_spec.rb
|
369
388
|
- spec/scorm_engine/models/destination_spec.rb
|
389
|
+
- spec/scorm_engine/models/dispatch_registration_count_spec.rb
|
370
390
|
- spec/scorm_engine/models/dispatch_spec.rb
|
371
391
|
- spec/scorm_engine/models/dispatch_zip_spec.rb
|
372
392
|
- spec/scorm_engine/models/learner_spec.rb
|
@@ -374,6 +394,7 @@ files:
|
|
374
394
|
- spec/scorm_engine/models/registration_launch_history_spec.rb
|
375
395
|
- spec/scorm_engine/models/registration_runtime_interaction_spec.rb
|
376
396
|
- spec/scorm_engine/models/registration_spec.rb
|
397
|
+
- spec/scorm_engine/models/tenant_configuration_spec.rb
|
377
398
|
- spec/scorm_engine/utils_spec.rb
|
378
399
|
- spec/scorm_engine/version_spec.rb
|
379
400
|
- spec/scorm_engine_spec.rb
|
@@ -382,7 +403,7 @@ files:
|
|
382
403
|
- spec/support/scorm_engine_client.rb
|
383
404
|
- spec/support/scorm_engine_configuration.rb
|
384
405
|
- spec/support/vcr.rb
|
385
|
-
homepage: https://github.com/
|
406
|
+
homepage: https://github.com/instructure-bridge/scorm_engine
|
386
407
|
licenses:
|
387
408
|
- MIT
|
388
409
|
metadata: {}
|
@@ -402,8 +423,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
402
423
|
version: '0'
|
403
424
|
requirements: []
|
404
425
|
rubyforge_project:
|
405
|
-
rubygems_version: 2.7.6
|
426
|
+
rubygems_version: 2.7.6.2
|
406
427
|
signing_key:
|
407
428
|
specification_version: 4
|
408
|
-
summary: Ruby Client for Rustici's SCORM Engine
|
429
|
+
summary: Ruby Client for Rustici's SCORM Engine API
|
409
430
|
test_files: []
|