scorm_engine 0.7.0 → 0.8.1

Sign up to get free protection for your applications and to get access to all the features.
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: []