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.
Files changed (38) hide show
  1. checksums.yaml +4 -4
  2. data/lib/scorm_engine/api/endpoints.rb +4 -0
  3. data/lib/scorm_engine/api/endpoints/configuration.rb +64 -0
  4. data/lib/scorm_engine/api/endpoints/courses/configuration.rb +1 -1
  5. data/lib/scorm_engine/api/endpoints/dispatches.rb +45 -2
  6. data/lib/scorm_engine/api/endpoints/registrations/configuration.rb +1 -1
  7. data/lib/scorm_engine/api/endpoints/tenants/configuration.rb +108 -0
  8. data/lib/scorm_engine/configuration.rb +4 -2
  9. data/lib/scorm_engine/faraday/connection.rb +10 -4
  10. data/lib/scorm_engine/faraday/request.rb +17 -4
  11. data/lib/scorm_engine/models.rb +2 -0
  12. data/lib/scorm_engine/models/dispatch_registration_count.rb +49 -0
  13. data/lib/scorm_engine/models/tenant_configuration.rb +34 -0
  14. data/lib/scorm_engine/version.rb +1 -1
  15. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Configuration/_get_app_configuration/is_successful.yml +64 -0
  16. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Configuration/_get_app_configuration/returns_settings_and_values.yml +64 -0
  17. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Configuration/_post_app_configuration/fails_when_settings_are_invalid.yml +48 -0
  18. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Configuration/_post_app_configuration/is_successful.yml +44 -0
  19. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Configuration/_post_app_configuration/persists_the_settings.yml +207 -0
  20. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Courses_Import/_get_course_import/successful_imports/works.yml +6 -6
  21. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Courses_Import/_get_course_import/unsuccessful_imports/fails_to_import_given_an_invalid_url.yml +7 -7
  22. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Courses_Import/_post_course_import/unsuccessful_imports/fails_to_import_a_previously_existing_course.yml +2 -2
  23. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Dispatches/_delete_dispatch_registration_count/is_successful.yml +30 -0
  24. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Dispatches/_delete_dispatch_registration_count/succeeds_even_when_id_is_invalid.yml +30 -0
  25. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Dispatches/_get_dispatch_registration_count/fails_when_id_is_invalid.yml +63 -0
  26. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Dispatches/_get_dispatch_registration_count/is_successful.yml +63 -0
  27. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Dispatches/_get_dispatch_registration_count/results/sucessfully_creates_the_dispatch_attributes.yml +63 -0
  28. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Dispatches/_get_dispatch_registration_count/when_dispatch_has_registrations/knows_it_s_registration_count.yml +63 -0
  29. data/spec/scorm_engine/api/endpoints/configuration_spec.rb +51 -0
  30. data/spec/scorm_engine/api/endpoints/courses/import_spec.rb +1 -1
  31. data/spec/scorm_engine/api/endpoints/dispatches_spec.rb +47 -1
  32. data/spec/scorm_engine/api/endpoints/tenants/configuration_spec.rb +126 -0
  33. data/spec/scorm_engine/faraday/connection_spec.rb +23 -5
  34. data/spec/scorm_engine/models/dispatch_registration_count_spec.rb +42 -0
  35. data/spec/scorm_engine/models/tenant_configuration_spec.rb +16 -0
  36. data/spec/support/scorm_engine.rb +1 -1
  37. data/spec/support/vcr.rb +1 -0
  38. 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/phallstrom/scorm_engine/raw/master/spec/fixtures/zip/RuntimeBasicCalls_SCORM20043rdEdition.zip")
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
- let(:uri) { scorm_engine_client.base_uri }
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
- it "returns a URI::HTTPS instance" do
14
- expect(uri).to be_a(URI::HTTPS)
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
- it "is correct given the configuration" do
18
- expect(uri.to_s).to eq "https://scorm.engine/ScormEngineInterface/api/v1/"
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/phallstrom/scorm_engine/raw/master/spec/fixtures/zip/#{options[:key]}.zip"
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)
@@ -18,6 +18,7 @@ end
18
18
  INSERTED_CASSETTES = Set.new
19
19
  module CassetteReporter
20
20
  def insert_cassette(name, options = {})
21
+ return unless VCR.turned_on?
21
22
  INSERTED_CASSETTES << VCR::Cassette.new(name, options).file
22
23
  super
23
24
  end
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.7.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: 2018-10-04 00:00:00.000000000 Z
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.2
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.2
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: '10.0'
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: '10.0'
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: '1.2'
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: '1.2'
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/phallstrom/scorm_engine
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 2017.1 API
429
+ summary: Ruby Client for Rustici's SCORM Engine API
409
430
  test_files: []