scorm_engine 0.7.3 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (181) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +2 -0
  3. data/lib/scorm_engine/api/endpoints.rb +2 -0
  4. data/lib/scorm_engine/api/endpoints/configuration.rb +94 -0
  5. data/lib/scorm_engine/configuration.rb +8 -6
  6. data/lib/scorm_engine/faraday/connection.rb +10 -4
  7. data/lib/scorm_engine/faraday/request.rb +17 -4
  8. data/lib/scorm_engine/models/dispatch_zip.rb +2 -0
  9. data/lib/scorm_engine/models/registration.rb +2 -0
  10. data/lib/scorm_engine/version.rb +1 -1
  11. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_About/_get_about/is_successful.yml +24 -15
  12. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_About/_get_about/knows_the_platform.yml +24 -15
  13. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_About/_get_about/knows_the_version.yml +24 -15
  14. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_About/_get_about_user_count/accepts_before_option.yml +23 -15
  15. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_About/_get_about_user_count/accepts_since_option.yml +23 -15
  16. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_About/_get_about_user_count/is_successful.yml +23 -15
  17. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_About/_get_about_user_count/tracks_combined_counts.yml +23 -15
  18. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_About/_get_about_user_count/tracks_per_tenantcounts.yml +23 -15
  19. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Configuration/_delete_app_configuration/fails_when_settings_are_invalid.yml +46 -0
  20. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Configuration/_delete_app_configuration/is_successful.yml +42 -0
  21. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Configuration/_get_app_configuration/includeMetadata/is_successful.yml +931 -0
  22. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Configuration/_get_app_configuration/includeMetadata/returns_metadata_in_raw_response_when_included_in_options.yml +931 -0
  23. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Configuration/_get_app_configuration/is_successful.yml +64 -0
  24. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Configuration/_get_app_configuration/returns_settings_and_values.yml +64 -0
  25. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Configuration/_post_app_configuration/fails_when_settings_are_invalid.yml +48 -0
  26. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Configuration/_post_app_configuration/is_successful.yml +44 -0
  27. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Configuration/_post_app_configuration/persists_the_settings.yml +207 -0
  28. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Courses/_delete_course/fails_when_id_is_invalid.yml +23 -15
  29. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Courses/_delete_course/works.yml +19 -9
  30. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Courses/_get_course_detail/fails_when_id_is_invalid.yml +23 -15
  31. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Courses/_get_course_detail/is_successful.yml +24 -16
  32. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Courses/_get_course_detail/results/sucessfully_creates_the_Course_attributes.yml +24 -16
  33. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Courses/_get_course_preview/fails_when_id_is_invalid.yml +23 -15
  34. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Courses/_get_course_preview/is_successful.yml +23 -15
  35. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Courses/_get_course_preview/results/returns_a_URL_string.yml +23 -15
  36. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Courses/_get_courses/_course_id_option/fetches_a_single_course_but_perhaps_multiple_versions.yml +23 -15
  37. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Courses/_get_courses/_course_id_option/returns_404_when_ID_is_invalid.yml +23 -15
  38. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Courses/_get_courses/_more_option_pagination_/returns_all_the_courses.yml +65 -45
  39. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Courses/_get_courses/_more_option_pagination_/returns_the_more_key_in_the_raw_response.yml +32 -24
  40. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Courses/_get_courses/_since_option/fails_when_passed_an_invalid_value.yml +20 -10
  41. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Courses/_get_courses/_since_option/works.yml +42 -19
  42. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Courses/_get_courses/is_successful.yml +32 -19
  43. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Courses/_get_courses/results/is_an_enumerator_of_Course_models.yml +32 -19
  44. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Courses/_get_courses/results/sucessfully_creates_the_Course_attributes.yml +32 -19
  45. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Courses_Configuration/_get_course_configuration/fails_when_id_is_invalid.yml +23 -15
  46. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Courses_Configuration/_get_course_configuration/is_successful.yml +23 -15
  47. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Courses_Configuration/_get_course_configuration/results/makes_settings_available_as_key/value_pairs.yml +23 -15
  48. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Courses_Configuration/_get_course_configuration_setting/fails_when_course_id_is_invalid.yml +23 -15
  49. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Courses_Configuration/_get_course_configuration_setting/fails_when_setting_id_is_invalid.yml +20 -10
  50. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Courses_Configuration/_get_course_configuration_setting/is_successful.yml +41 -19
  51. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Courses_Configuration/_get_course_configuration_setting/results/returns_the_value_as_a_string.yml +41 -19
  52. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Courses_Configuration/_post_course_configuration/fails_when_id_is_invalid.yml +25 -15
  53. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Courses_Configuration/_post_course_configuration/fails_when_settings_are_invalid.yml +24 -12
  54. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Courses_Configuration/_post_course_configuration/is_successful.yml +21 -9
  55. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Courses_Configuration/_post_course_configuration/persists_the_settings.yml +88 -48
  56. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Courses_Configuration/_put_course_configuration_setting/fails_when_course_id_is_invalid.yml +25 -15
  57. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Courses_Configuration/_put_course_configuration_setting/fails_when_setting_id_is_invalid.yml +20 -10
  58. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Courses_Configuration/_put_course_configuration_setting/is_successful.yml +41 -19
  59. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Courses_Configuration/_put_course_configuration_setting/results/persists_the_changes.yml +61 -29
  60. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Courses_Import/_get_course_import/successful_imports/works.yml +102 -95
  61. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Courses_Import/_get_course_import/unsuccessful_imports/fails_to_import_given_an_invalid_url.yml +73 -294
  62. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Courses_Import/_post_course_import/unsuccessful_imports/fails_to_import_a_previously_existing_course.yml +21 -9
  63. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Destinations/_delete_destination/returns_success_even_when_id_is_invalid.yml +19 -9
  64. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Destinations/_delete_destination/works.yml +19 -9
  65. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Destinations/_get_destination/fails_when_id_is_invalid.yml +22 -14
  66. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Destinations/_get_destination/is_successful.yml +22 -14
  67. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Destinations/_get_destination/results/sucessfully_creates_the_destination_attributes.yml +22 -14
  68. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Destinations/_get_destination_dispatches_registration_count/fails_when_invalid.yml +22 -14
  69. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Destinations/_get_destination_dispatches_registration_count/works.yml +20 -10
  70. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Destinations/_get_destinations/_more_option_pagination_/returns_all_the_destinations.yml +48 -31
  71. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Destinations/_get_destinations/_more_option_pagination_/returns_the_more_key_in_the_raw_response.yml +23 -15
  72. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Destinations/_get_destinations/_since_option/fails_when_passed_an_invalid_value.yml +22 -13
  73. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Destinations/_get_destinations/_since_option/works.yml +24 -15
  74. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Destinations/_get_destinations/is_successful.yml +23 -15
  75. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Destinations/_get_destinations/results/is_an_enumerator_of_Destination_models.yml +23 -15
  76. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Destinations/_get_destinations/results/sucessfully_creates_the_Destination_attributes.yml +65 -13
  77. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Destinations/_post_destination/is_successful.yml +40 -18
  78. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Destinations/_post_destination/is_successful_even_if_the_destination_id_is_not_unique.yml +21 -9
  79. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Destinations/_post_destination_dispatches_enabled/fails_when_invalid.yml +24 -12
  80. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Destinations/_post_destination_dispatches_enabled/works_when_false.yml +21 -9
  81. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Destinations/_post_destination_dispatches_enabled/works_when_true.yml +21 -9
  82. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Destinations/_post_destination_dispatches_registration_instancing/fails_when_invalid.yml +24 -12
  83. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Destinations/_post_destination_dispatches_registration_instancing/works_when_false.yml +21 -9
  84. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Destinations/_post_destination_dispatches_registration_instancing/works_when_true.yml +21 -9
  85. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Destinations/_put_destination/is_successful.yml +21 -9
  86. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Destinations/_put_destination/results/sucessfully_creates_the_destination_attributes.yml +43 -23
  87. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Dispatches/_delete_dispatch/returns_success_even_when_id_is_invalid.yml +19 -7
  88. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Dispatches/_delete_dispatch/works.yml +19 -7
  89. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Dispatches/_delete_dispatch_registration_count/is_successful.yml +19 -7
  90. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Dispatches/_delete_dispatch_registration_count/succeeds_even_when_id_is_invalid.yml +19 -7
  91. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Dispatches/_get_dispatch/fails_when_id_is_invalid.yml +22 -12
  92. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Dispatches/_get_dispatch/is_successful.yml +23 -13
  93. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Dispatches/_get_dispatch/results/sucessfully_creates_the_dispatch_attributes.yml +23 -13
  94. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Dispatches/_get_dispatch_enabled/is_false_when_disabled.yml +39 -15
  95. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Dispatches/_get_dispatch_enabled/is_true_when_enabled.yml +39 -15
  96. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Dispatches/_get_dispatch_registration_count/fails_when_id_is_invalid.yml +41 -19
  97. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Dispatches/_get_dispatch_registration_count/is_successful.yml +42 -20
  98. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Dispatches/_get_dispatch_registration_count/results/sucessfully_creates_the_dispatch_attributes.yml +42 -20
  99. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Dispatches/_get_dispatch_zip/fails_given_an_invalid_id.yml +22 -12
  100. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Dispatches/_get_dispatch_zip/fails_given_an_invalid_type.yml +20 -8
  101. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Dispatches/_get_dispatch_zip/works.yml +24 -12
  102. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Dispatches/_get_dispatch_zip/works_when_type_is_AICC.yml +24 -12
  103. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Dispatches/_get_dispatch_zip/works_when_type_is_SCORM12.yml +24 -12
  104. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Dispatches/_get_dispatch_zip/works_when_type_is_SCORM2004-3RD.yml +23 -11
  105. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Dispatches/_get_dispatches/_more_option_pagination_/returns_all_the_dispatches.yml +47 -27
  106. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Dispatches/_get_dispatches/_more_option_pagination_/returns_the_more_key_in_the_raw_response.yml +23 -13
  107. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Dispatches/_get_dispatches/_since_option/fails_when_passed_an_invalid_value.yml +20 -8
  108. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Dispatches/_get_dispatches/_since_option/works.yml +23 -13
  109. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Dispatches/_get_dispatches/is_successful.yml +23 -13
  110. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Dispatches/_get_dispatches/results/is_an_enumerator_of_dispatch_models.yml +23 -13
  111. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Dispatches/_get_dispatches/results/sucessfully_creates_the_dispatch_attributes.yml +21 -44
  112. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Dispatches/_post_dispatch/is_successful.yml +38 -14
  113. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Dispatches/_post_dispatch/updates_if_same_dispatch_id.yml +65 -33
  114. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Dispatches/_put_dispatch/is_successful.yml +19 -7
  115. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Dispatches/_put_dispatch/results/sucessfully_creates_the_dispatch_attributes.yml +42 -20
  116. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Dispatches/_put_dispatch_enabled/fails_when_invalid.yml +22 -10
  117. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Dispatches/_put_dispatch_enabled/works_when_false.yml +19 -7
  118. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Dispatches/_put_dispatch_enabled/works_when_true.yml +19 -7
  119. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Ping/_get_ping/is_successful.yml +23 -15
  120. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Ping/_get_ping/reports_the_api_is_up.yml +23 -15
  121. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Ping/_get_ping/with_invalid_password/is_unsuccessful.yml +25 -17
  122. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Ping/_get_ping/with_invalid_password/returns_status_403.yml +25 -17
  123. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Registrations/_delete_registration/is_failure_when_registration_does_not_exist.yml +23 -13
  124. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Registrations/_delete_registration/is_successful_when_registration_exists.yml +19 -7
  125. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Registrations/_get_registration_exists/is_false_when_registration_does_not_exist.yml +23 -13
  126. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Registrations/_get_registration_exists/is_true_when_registration_exists.yml +20 -8
  127. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Registrations/_get_registration_instances/includes_results_we_expect.yml +26 -14
  128. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Registrations/_get_registration_instances/is_successful.yml +26 -14
  129. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Registrations/_get_registration_instances/returns_an_array_of_registrations.yml +26 -14
  130. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Registrations/_get_registration_launch_link/fails_when_id_is_invalid.yml +23 -13
  131. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Registrations/_get_registration_launch_link/is_successful.yml +23 -13
  132. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Registrations/_get_registration_launch_link/results/returns_a_URL_string.yml +23 -13
  133. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Registrations/_get_registration_progress/detail/does_not_return_activity_details_by_default.yml +24 -14
  134. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Registrations/_get_registration_progress/detail/returns_activity_details_if_requested.yml +24 -14
  135. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Registrations/_get_registration_progress/fails_when_registration_does_not_exist.yml +23 -13
  136. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Registrations/_get_registration_progress/returns_a_registration_when_it_exists.yml +24 -14
  137. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Registrations/_get_registrations/filtering_by_course_id/excludes_results.yml +22 -12
  138. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Registrations/_get_registrations/filtering_by_course_id/includes_results.yml +26 -14
  139. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Registrations/_get_registrations/filtering_by_learner_id/excludes_results.yml +22 -12
  140. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Registrations/_get_registrations/filtering_by_learner_id/includes_results.yml +26 -14
  141. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Registrations/_get_registrations/includes_results_we_expect.yml +26 -14
  142. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Registrations/_get_registrations/is_successful.yml +26 -14
  143. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Registrations/_get_registrations/returns_an_array_of_registrations.yml +26 -14
  144. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Registrations/_post_registration/fails_if_course_id_is_invalid.yml +22 -10
  145. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Registrations/_post_registration/fails_if_registration_id_already_exists.yml +20 -8
  146. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Registrations/_post_registration/is_successful.yml +38 -14
  147. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Registrations/_post_registration/is_successful_even_when_given_a_UTF8/slashed_username.yml +38 -14
  148. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Registrations_Configuration/_get_registration_configuration/fails_when_id_is_invalid.yml +23 -15
  149. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Registrations_Configuration/_get_registration_configuration/is_successful.yml +23 -15
  150. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Registrations_Configuration/_get_registration_configuration/results/makes_settings_available_as_key/value_pairs.yml +23 -15
  151. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Registrations_Configuration/_get_registration_configuration_setting/fails_when_registration_id_is_invalid.yml +23 -15
  152. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Registrations_Configuration/_get_registration_configuration_setting/fails_when_setting_id_is_invalid.yml +20 -10
  153. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Registrations_Configuration/_get_registration_configuration_setting/is_successful.yml +41 -19
  154. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Registrations_Configuration/_get_registration_configuration_setting/results/returns_the_value_as_a_string.yml +41 -19
  155. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Registrations_Configuration/_post_registration_configuration/fails_when_id_is_invalid.yml +25 -15
  156. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Registrations_Configuration/_post_registration_configuration/fails_when_settings_are_invalid.yml +24 -12
  157. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Registrations_Configuration/_post_registration_configuration/is_successful.yml +21 -9
  158. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Registrations_Configuration/_post_registration_configuration/persists_the_settings.yml +88 -48
  159. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Registrations_Configuration/_put_registration_configuration_setting/fails_when_registration_id_is_invalid.yml +25 -15
  160. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Registrations_Configuration/_put_registration_configuration_setting/fails_when_setting_id_is_invalid.yml +20 -10
  161. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Registrations_Configuration/_put_registration_configuration_setting/is_successful.yml +41 -19
  162. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Registrations_Configuration/_put_registration_configuration_setting/results/persists_the_changes.yml +61 -29
  163. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Registrations_LaunchHistory/_get_registration_launch_history/fails_when_registration_does_not_exist.yml +23 -15
  164. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Registrations_LaunchHistory/_get_registration_launch_history/is_successful.yml +23 -31
  165. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Registrations_LaunchHistory/_get_registration_launch_history/returns_an_array_of_registration_launch_histories.yml +23 -31
  166. data/spec/scorm_engine/api/endpoints/about_spec.rb +1 -1
  167. data/spec/scorm_engine/api/endpoints/configuration_spec.rb +82 -0
  168. data/spec/scorm_engine/api/endpoints/courses/configuration_spec.rb +5 -5
  169. data/spec/scorm_engine/api/endpoints/courses_spec.rb +6 -6
  170. data/spec/scorm_engine/api/endpoints/destinations_spec.rb +2 -2
  171. data/spec/scorm_engine/api/endpoints/dispatches_spec.rb +1 -1
  172. data/spec/scorm_engine/api/endpoints/registrations/configuration_spec.rb +5 -5
  173. data/spec/scorm_engine/api/endpoints/registrations_spec.rb +4 -4
  174. data/spec/scorm_engine/api/endpoints/tenants/configuration_spec.rb +1 -1
  175. data/spec/scorm_engine/faraday/connection_spec.rb +23 -5
  176. data/spec/scorm_engine/models/base_spec.rb +9 -7
  177. data/spec/spec_helper.rb +5 -2
  178. data/spec/support/scorm_engine.rb +2 -4
  179. metadata +54 -31
  180. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Destinations/_delete_destination/raises_ArgumentError_when_destination_id_is_missing.yml +0 -32
  181. data/spec/fixtures/vcr/ScormEngine_Api_Endpoints_Dispatches/_get_dispatch_registration_count/when_dispatch_has_registrations/knows_it_s_registration_count.yml +0 -63
@@ -25,7 +25,6 @@ RSpec.describe ScormEngine::Api::Endpoints::Courses do
25
25
  course = courses.results.detect { |c| c.id == "testing-golf-explained" }
26
26
  expect(course.version).to be >= 0
27
27
  expect(course.title).to eq "Golf Explained - Run-time Basic Calls"
28
- expect(course.registration_count).to eq 0
29
28
  expect(course.updated).to be_a Time
30
29
  expect(course.description).to eq nil
31
30
  end
@@ -42,7 +41,7 @@ RSpec.describe ScormEngine::Api::Endpoints::Courses do
42
41
  response = subject.get_courses(course_id: "invalid-bogus")
43
42
  expect(response.success?).to eq false
44
43
  expect(response.status).to eq 404
45
- expect(response.message).to match(/External Package ID 'invalid-bogus'/)
44
+ expect(response.message).to match(/'invalid-bogus'/)
46
45
  end
47
46
  end
48
47
 
@@ -76,7 +75,7 @@ RSpec.describe ScormEngine::Api::Endpoints::Courses do
76
75
  end
77
76
 
78
77
  it "returns the :more key in the raw response" do
79
- expect(subject.get_courses.raw_response.body["more"]).to match(%r{https?://.*&more=.+})
78
+ expect(subject.get_courses.raw_response.body["more"]).to match(%r{(https?://)?.*&more=.+})
80
79
  end
81
80
 
82
81
  it "returns all the courses" do
@@ -106,7 +105,7 @@ RSpec.describe ScormEngine::Api::Endpoints::Courses do
106
105
  response = subject.delete_course(course_id: "nonexistent-course")
107
106
  expect(response.success?).to eq false
108
107
  expect(response.status).to eq 404
109
- expect(response.message).to match(/External Package ID 'nonexistent-course'/)
108
+ expect(response.message).to match(/'nonexistent-course'/)
110
109
  end
111
110
  end
112
111
 
@@ -136,7 +135,7 @@ RSpec.describe ScormEngine::Api::Endpoints::Courses do
136
135
  response = subject.get_course_preview(course_id: "nonexistent-course")
137
136
  expect(response.success?).to eq false
138
137
  expect(response.status).to eq 404
139
- expect(response.message).to match(/External Package ID 'nonexistent-course'/)
138
+ expect(response.message).to match(/'nonexistent-course'/)
140
139
  expect(response.result).to eq nil
141
140
  end
142
141
  end
@@ -151,6 +150,7 @@ RSpec.describe ScormEngine::Api::Endpoints::Courses do
151
150
  describe "results" do
152
151
  it "returns a URL string" do
153
152
  url = response.result
153
+ # expect(url).to match(%r{/ScormEngineInterface/defaultui/launch.jsp\?jwt=.*})
154
154
  expect(url).to match(%r{/defaultui/launch.jsp\?.*testing-golf-explained.*RedirectOnExitUrl=https%3A%2F%2Fexample.com})
155
155
  end
156
156
  end
@@ -159,7 +159,7 @@ RSpec.describe ScormEngine::Api::Endpoints::Courses do
159
159
  response = subject.get_course_preview(course_id: "nonexistent-course")
160
160
  expect(response.success?).to eq false
161
161
  expect(response.status).to eq 404
162
- expect(response.message).to match(/External Package ID 'nonexistent-course'/)
162
+ expect(response.message).to match(/'nonexistent-course'/)
163
163
  expect(response.result).to eq nil
164
164
  end
165
165
  end
@@ -48,7 +48,7 @@ RSpec.describe ScormEngine::Api::Endpoints::Destinations do
48
48
  expect(destinations.success?).to eq false
49
49
  expect(destinations.status).to eq 400
50
50
  expect(destinations.results.to_a).to eq []
51
- expect(destinations.message).to match(/'invalid' is either not a timestamp or seems to be not formatted according to ISO 8601/)
51
+ expect(destinations.message).to match(/'invalid'/)
52
52
  end
53
53
  end
54
54
  end
@@ -63,7 +63,7 @@ RSpec.describe ScormEngine::Api::Endpoints::Destinations do
63
63
  end
64
64
 
65
65
  it "returns the :more key in the raw response" do
66
- expect(subject.get_destinations.raw_response.body["more"]).to match(%r{https?://.*&more=.+})
66
+ expect(subject.get_destinations.raw_response.body["more"]).to match(%r{(https?://)?.*&more=.+})
67
67
  end
68
68
 
69
69
  it "returns all the destinations" do
@@ -85,7 +85,7 @@ RSpec.describe ScormEngine::Api::Endpoints::Dispatches do
85
85
  end
86
86
 
87
87
  it "returns the :more key in the raw response" do
88
- expect(subject.get_dispatches.raw_response.body["more"]).to match(%r{https?://.*&more=.+})
88
+ expect(subject.get_dispatches.raw_response.body["more"]).to match(%r{(https?://)?.*&more=.+})
89
89
  end
90
90
 
91
91
  it "returns all the dispatches" do
@@ -40,7 +40,7 @@ RSpec.describe ScormEngine::Api::Endpoints::Registrations::Configuration do
40
40
  response = subject.get_registration_configuration(registration_id: "nonexistent-registration", settings: {})
41
41
  expect(response.success?).to eq false
42
42
  expect(response.status).to eq 404
43
- expect(response.message).to match(/External Registration ID 'nonexistent-registration'/)
43
+ expect(response.message).to match(/Registration ID 'nonexistent-registration'/)
44
44
  expect(response.result).to eq nil
45
45
  end
46
46
  end
@@ -79,7 +79,7 @@ RSpec.describe ScormEngine::Api::Endpoints::Registrations::Configuration do
79
79
  response = subject.post_registration_configuration(registration_id: "nonexistent-registration", settings: {})
80
80
  expect(response.success?).to eq false
81
81
  expect(response.status).to eq 404
82
- expect(response.message).to match(/External Registration ID 'nonexistent-registration'/)
82
+ expect(response.message).to match(/Registration ID 'nonexistent-registration'/)
83
83
  expect(response.result).to eq nil
84
84
  end
85
85
 
@@ -87,7 +87,7 @@ RSpec.describe ScormEngine::Api::Endpoints::Registrations::Configuration do
87
87
  response = subject.post_registration_configuration(registration_id: registration_options[:registration_id], settings: { "NonExistentSettingTotesBogus" => "YES" })
88
88
  expect(response.success?).to eq false
89
89
  expect(response.status).to eq 400
90
- expect(response.message).to match(/No configuration setting found with id.*NonExistentSettingTotesBogus/)
90
+ expect(response.message).to match(/NonExistentSettingTotesBogus/)
91
91
  end
92
92
  end
93
93
 
@@ -111,7 +111,7 @@ RSpec.describe ScormEngine::Api::Endpoints::Registrations::Configuration do
111
111
  response = subject.get_registration_configuration_setting(registration_id: "nonexistent-registration", setting_id: "PlayerStatusRollupModeThresholdScore")
112
112
  expect(response.success?).to eq false
113
113
  expect(response.status).to eq 404
114
- expect(response.message).to match(/External Registration ID 'nonexistent-registration'/)
114
+ expect(response.message).to match(/Registration ID 'nonexistent-registration'/)
115
115
  expect(response.result).to eq nil
116
116
  end
117
117
 
@@ -144,7 +144,7 @@ RSpec.describe ScormEngine::Api::Endpoints::Registrations::Configuration do
144
144
  response = subject.put_registration_configuration_setting(registration_id: "nonexistent-registration", setting_id: "PlayerStatusRollupModeThresholdScore", value: "42")
145
145
  expect(response.success?).to eq false
146
146
  expect(response.status).to eq 404
147
- expect(response.message).to match(/External Registration ID 'nonexistent-registration'/)
147
+ expect(response.message).to match(/Registration ID 'nonexistent-registration'/)
148
148
  expect(response.result).to eq nil
149
149
  end
150
150
 
@@ -22,7 +22,7 @@ RSpec.describe ScormEngine::Api::Endpoints::Registrations do
22
22
  against_real_scorm_engine do
23
23
  ensure_course_exists(client: subject, course_id: registration_options[:course_id])
24
24
  ensure_registration_exists(registration_options.merge(client: subject))
25
- ensure_course_exists(client: subject, course_id: registration_options[:course_id] + "-no-registrations")
25
+ ensure_course_exists(client: subject, course_id: "#{registration_options[:course_id]}-no-registrations")
26
26
  end
27
27
  end
28
28
 
@@ -50,7 +50,7 @@ RSpec.describe ScormEngine::Api::Endpoints::Registrations do
50
50
  end
51
51
 
52
52
  it "excludes results" do
53
- registrations = subject.get_registrations(course_id: registration_options[:course_id] + "-no-registrations")
53
+ registrations = subject.get_registrations(course_id: "#{registration_options[:course_id]}-no-registrations")
54
54
  reg = registrations.result.detect { |r| r.id == registration_options[:registration_id] }
55
55
  expect(reg).to be nil
56
56
  end
@@ -183,7 +183,7 @@ RSpec.describe ScormEngine::Api::Endpoints::Registrations do
183
183
  aggregate_failures do
184
184
  expect(response.success?).to eq false
185
185
  expect(response.status).to eq 400
186
- expect(response.message).to match(/External Package ID 'invalid-bogus'/)
186
+ expect(response.message).to match(/'invalid-bogus'/)
187
187
  end
188
188
  end
189
189
 
@@ -215,7 +215,7 @@ RSpec.describe ScormEngine::Api::Endpoints::Registrations do
215
215
  response = subject.get_registration_launch_link(registration_id: "nonexistent-registration")
216
216
  expect(response.success?).to eq false
217
217
  expect(response.status).to eq 404
218
- expect(response.message).to match(/External Registration ID 'nonexistent-registration'/)
218
+ expect(response.message).to match(/'nonexistent-registration'/)
219
219
  expect(response.result).to eq nil
220
220
  end
221
221
  end
@@ -70,7 +70,7 @@ RSpec.describe ScormEngine::Api::Endpoints::Tenants::Configuration do
70
70
  response = subject.post_tenant_configuration(settings: { "NonExistentSettingTotesBogus" => "YES" })
71
71
  expect(response.success?).to eq false
72
72
  expect(response.status).to eq 400
73
- expect(response.message).to match(/No configuration setting found with id.*NonExistentSettingTotesBogus/)
73
+ expect(response.message).to match(/NonExistentSettingTotesBogus/)
74
74
  end
75
75
  end
76
76
 
@@ -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
@@ -1,14 +1,16 @@
1
- RSpec.describe ScormEngine::Models::Base do
2
- module ScormEngine
3
- module Models
4
- class Test < Base
5
- def initialize(options = {})
6
- @options = options
7
- end
1
+ module ScormEngine
2
+ module Models
3
+ class Test < Base
4
+ # rubocop:disable Lint/MissingSuper
5
+ def initialize(options = {})
6
+ @options = options
8
7
  end
8
+ # rubocop:enable Lint/MissingSuper
9
9
  end
10
10
  end
11
+ end
11
12
 
13
+ RSpec.describe ScormEngine::Models::Base do
12
14
  describe "#to_hash" do
13
15
  it "returns a hash of the options" do
14
16
  options = { i: 1, s: "str", a: [1, 2, 3] }
@@ -4,7 +4,10 @@ require "pry"
4
4
  require "scorm_engine"
5
5
 
6
6
  # Ensure we're picking up only the test scorm settings
7
- Dotenv.load(".env.test")
7
+ Dotenv.load(".env.test.local",
8
+ ".env.test",
9
+ ".env.local",
10
+ ".env")
8
11
 
9
12
  RSpec.configure do |config|
10
13
  # Enable flags like --only-failures and --next-failure
@@ -42,6 +45,6 @@ RSpec.configure do |config|
42
45
  end
43
46
 
44
47
  # Require every spec support file
45
- Dir[File.join(File.dirname(__FILE__), "support", "**/*.rb")].each do |file|
48
+ Dir[File.join(File.dirname(__FILE__), "support", "**/*.rb")].sort.each do |file|
46
49
  require file
47
50
  end
@@ -7,13 +7,11 @@ module ScormEngineHelpers
7
7
  # importing a course and play it back other tests that expect the actual
8
8
  # record to exist in SCORM will fail.
9
9
  #
10
- def against_real_scorm_engine
10
+ def against_real_scorm_engine(&block)
11
11
  return unless scorm_engine_is_available?
12
12
 
13
13
  cassette = VCR.eject_cassette
14
- VCR.turned_off do
15
- yield
16
- end
14
+ VCR.turned_off(&block)
17
15
  VCR.insert_cassette(cassette.name, cassette.instance_variable_get(:@options))
18
16
  end
19
17
 
metadata CHANGED
@@ -1,57 +1,70 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: scorm_engine
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.3
4
+ version: 0.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Philip Hallstrom
8
- autorequire:
8
+ - Mel Green
9
+ autorequire:
9
10
  bindir: exe
10
11
  cert_chain: []
11
- date: 2019-03-12 00:00:00.000000000 Z
12
+ date: 1980-01-01 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: faraday
15
16
  requirement: !ruby/object:Gem::Requirement
16
17
  requirements:
17
- - - "~>"
18
+ - - ">="
19
+ - !ruby/object:Gem::Version
20
+ version: '0.12'
21
+ - - "<="
18
22
  - !ruby/object:Gem::Version
19
- version: 0.12.2
23
+ version: '2.0'
20
24
  type: :runtime
21
25
  prerelease: false
22
26
  version_requirements: !ruby/object:Gem::Requirement
23
27
  requirements:
24
- - - "~>"
28
+ - - ">="
29
+ - !ruby/object:Gem::Version
30
+ version: '0.12'
31
+ - - "<="
25
32
  - !ruby/object:Gem::Version
26
- version: 0.12.2
33
+ version: '2.0'
27
34
  - !ruby/object:Gem::Dependency
28
35
  name: faraday_middleware
29
36
  requirement: !ruby/object:Gem::Requirement
30
37
  requirements:
31
- - - "~>"
38
+ - - ">="
32
39
  - !ruby/object:Gem::Version
33
40
  version: '0.12'
41
+ - - "<="
42
+ - !ruby/object:Gem::Version
43
+ version: '2.0'
34
44
  type: :runtime
35
45
  prerelease: false
36
46
  version_requirements: !ruby/object:Gem::Requirement
37
47
  requirements:
38
- - - "~>"
48
+ - - ">="
39
49
  - !ruby/object:Gem::Version
40
50
  version: '0.12'
51
+ - - "<="
52
+ - !ruby/object:Gem::Version
53
+ version: '2.0'
41
54
  - !ruby/object:Gem::Dependency
42
55
  name: bundler
43
56
  requirement: !ruby/object:Gem::Requirement
44
57
  requirements:
45
58
  - - "~>"
46
59
  - !ruby/object:Gem::Version
47
- version: '1.16'
60
+ version: '2.0'
48
61
  type: :development
49
62
  prerelease: false
50
63
  version_requirements: !ruby/object:Gem::Requirement
51
64
  requirements:
52
65
  - - "~>"
53
66
  - !ruby/object:Gem::Version
54
- version: '1.16'
67
+ version: '2.0'
55
68
  - !ruby/object:Gem::Dependency
56
69
  name: dotenv
57
70
  requirement: !ruby/object:Gem::Requirement
@@ -72,28 +85,28 @@ dependencies:
72
85
  requirements:
73
86
  - - "~>"
74
87
  - !ruby/object:Gem::Version
75
- version: '0.11'
88
+ version: '0.1'
76
89
  type: :development
77
90
  prerelease: false
78
91
  version_requirements: !ruby/object:Gem::Requirement
79
92
  requirements:
80
93
  - - "~>"
81
94
  - !ruby/object:Gem::Version
82
- version: '0.11'
95
+ version: '0.1'
83
96
  - !ruby/object:Gem::Dependency
84
97
  name: rake
85
98
  requirement: !ruby/object:Gem::Requirement
86
99
  requirements:
87
100
  - - "~>"
88
101
  - !ruby/object:Gem::Version
89
- version: '10.0'
102
+ version: '13.0'
90
103
  type: :development
91
104
  prerelease: false
92
105
  version_requirements: !ruby/object:Gem::Requirement
93
106
  requirements:
94
107
  - - "~>"
95
108
  - !ruby/object:Gem::Version
96
- version: '10.0'
109
+ version: '13.0'
97
110
  - !ruby/object:Gem::Dependency
98
111
  name: rspec
99
112
  requirement: !ruby/object:Gem::Requirement
@@ -114,42 +127,42 @@ dependencies:
114
127
  requirements:
115
128
  - - "~>"
116
129
  - !ruby/object:Gem::Version
117
- version: '0.56'
130
+ version: '1.0'
118
131
  type: :development
119
132
  prerelease: false
120
133
  version_requirements: !ruby/object:Gem::Requirement
121
134
  requirements:
122
135
  - - "~>"
123
136
  - !ruby/object:Gem::Version
124
- version: '0.56'
137
+ version: '1.0'
125
138
  - !ruby/object:Gem::Dependency
126
139
  name: rubyzip
127
140
  requirement: !ruby/object:Gem::Requirement
128
141
  requirements:
129
142
  - - "~>"
130
143
  - !ruby/object:Gem::Version
131
- version: '1.2'
144
+ version: '2.3'
132
145
  type: :development
133
146
  prerelease: false
134
147
  version_requirements: !ruby/object:Gem::Requirement
135
148
  requirements:
136
149
  - - "~>"
137
150
  - !ruby/object:Gem::Version
138
- version: '1.2'
151
+ version: '2.3'
139
152
  - !ruby/object:Gem::Dependency
140
153
  name: vcr
141
154
  requirement: !ruby/object:Gem::Requirement
142
155
  requirements:
143
156
  - - "~>"
144
157
  - !ruby/object:Gem::Version
145
- version: '4.0'
158
+ version: '6.0'
146
159
  type: :development
147
160
  prerelease: false
148
161
  version_requirements: !ruby/object:Gem::Requirement
149
162
  requirements:
150
163
  - - "~>"
151
164
  - !ruby/object:Gem::Version
152
- version: '4.0'
165
+ version: '6.0'
153
166
  - !ruby/object:Gem::Dependency
154
167
  name: yard
155
168
  requirement: !ruby/object:Gem::Requirement
@@ -164,9 +177,10 @@ dependencies:
164
177
  - - "~>"
165
178
  - !ruby/object:Gem::Version
166
179
  version: '0.9'
167
- description: Ruby Client for Rustici's SCORM Engine 2017.1 API
180
+ description: Ruby Client for Rustici's SCORM Engine 2017.1 & 20.1 API
168
181
  email:
169
182
  - phallstrom@instructure.com
183
+ - mgreen@instructure.com
170
184
  executables: []
171
185
  extensions: []
172
186
  extra_rdoc_files: []
@@ -176,6 +190,7 @@ files:
176
190
  - lib/scorm_engine.rb
177
191
  - lib/scorm_engine/api/endpoints.rb
178
192
  - lib/scorm_engine/api/endpoints/about.rb
193
+ - lib/scorm_engine/api/endpoints/configuration.rb
179
194
  - lib/scorm_engine/api/endpoints/courses.rb
180
195
  - lib/scorm_engine/api/endpoints/courses/configuration.rb
181
196
  - lib/scorm_engine/api/endpoints/courses/import.rb
@@ -217,6 +232,15 @@ files:
217
232
  - spec/fixtures/vcr/ScormEngine_Api_Endpoints_About/_get_about_user_count/is_successful.yml
218
233
  - spec/fixtures/vcr/ScormEngine_Api_Endpoints_About/_get_about_user_count/tracks_combined_counts.yml
219
234
  - spec/fixtures/vcr/ScormEngine_Api_Endpoints_About/_get_about_user_count/tracks_per_tenantcounts.yml
235
+ - spec/fixtures/vcr/ScormEngine_Api_Endpoints_Configuration/_delete_app_configuration/fails_when_settings_are_invalid.yml
236
+ - spec/fixtures/vcr/ScormEngine_Api_Endpoints_Configuration/_delete_app_configuration/is_successful.yml
237
+ - spec/fixtures/vcr/ScormEngine_Api_Endpoints_Configuration/_get_app_configuration/includeMetadata/is_successful.yml
238
+ - spec/fixtures/vcr/ScormEngine_Api_Endpoints_Configuration/_get_app_configuration/includeMetadata/returns_metadata_in_raw_response_when_included_in_options.yml
239
+ - spec/fixtures/vcr/ScormEngine_Api_Endpoints_Configuration/_get_app_configuration/is_successful.yml
240
+ - spec/fixtures/vcr/ScormEngine_Api_Endpoints_Configuration/_get_app_configuration/returns_settings_and_values.yml
241
+ - spec/fixtures/vcr/ScormEngine_Api_Endpoints_Configuration/_post_app_configuration/fails_when_settings_are_invalid.yml
242
+ - spec/fixtures/vcr/ScormEngine_Api_Endpoints_Configuration/_post_app_configuration/is_successful.yml
243
+ - spec/fixtures/vcr/ScormEngine_Api_Endpoints_Configuration/_post_app_configuration/persists_the_settings.yml
220
244
  - spec/fixtures/vcr/ScormEngine_Api_Endpoints_Courses/_delete_course/fails_when_id_is_invalid.yml
221
245
  - spec/fixtures/vcr/ScormEngine_Api_Endpoints_Courses/_delete_course/works.yml
222
246
  - spec/fixtures/vcr/ScormEngine_Api_Endpoints_Courses/_get_course_detail/fails_when_id_is_invalid.yml
@@ -252,7 +276,6 @@ files:
252
276
  - spec/fixtures/vcr/ScormEngine_Api_Endpoints_Courses_Import/_get_course_import/successful_imports/works.yml
253
277
  - spec/fixtures/vcr/ScormEngine_Api_Endpoints_Courses_Import/_get_course_import/unsuccessful_imports/fails_to_import_given_an_invalid_url.yml
254
278
  - spec/fixtures/vcr/ScormEngine_Api_Endpoints_Courses_Import/_post_course_import/unsuccessful_imports/fails_to_import_a_previously_existing_course.yml
255
- - spec/fixtures/vcr/ScormEngine_Api_Endpoints_Destinations/_delete_destination/raises_ArgumentError_when_destination_id_is_missing.yml
256
279
  - spec/fixtures/vcr/ScormEngine_Api_Endpoints_Destinations/_delete_destination/returns_success_even_when_id_is_invalid.yml
257
280
  - spec/fixtures/vcr/ScormEngine_Api_Endpoints_Destinations/_delete_destination/works.yml
258
281
  - spec/fixtures/vcr/ScormEngine_Api_Endpoints_Destinations/_get_destination/fails_when_id_is_invalid.yml
@@ -289,7 +312,6 @@ files:
289
312
  - spec/fixtures/vcr/ScormEngine_Api_Endpoints_Dispatches/_get_dispatch_registration_count/fails_when_id_is_invalid.yml
290
313
  - spec/fixtures/vcr/ScormEngine_Api_Endpoints_Dispatches/_get_dispatch_registration_count/is_successful.yml
291
314
  - spec/fixtures/vcr/ScormEngine_Api_Endpoints_Dispatches/_get_dispatch_registration_count/results/sucessfully_creates_the_dispatch_attributes.yml
292
- - spec/fixtures/vcr/ScormEngine_Api_Endpoints_Dispatches/_get_dispatch_registration_count/when_dispatch_has_registrations/knows_it_s_registration_count.yml
293
315
  - spec/fixtures/vcr/ScormEngine_Api_Endpoints_Dispatches/_get_dispatch_zip/fails_given_an_invalid_id.yml
294
316
  - spec/fixtures/vcr/ScormEngine_Api_Endpoints_Dispatches/_get_dispatch_zip/fails_given_an_invalid_type.yml
295
317
  - spec/fixtures/vcr/ScormEngine_Api_Endpoints_Dispatches/_get_dispatch_zip/works.yml
@@ -360,6 +382,7 @@ files:
360
382
  - spec/fixtures/zip/Non-working SCORM.zip
361
383
  - spec/fixtures/zip/RuntimeBasicCalls_SCORM20043rdEdition.zip
362
384
  - spec/scorm_engine/api/endpoints/about_spec.rb
385
+ - spec/scorm_engine/api/endpoints/configuration_spec.rb
363
386
  - spec/scorm_engine/api/endpoints/courses/configuration_spec.rb
364
387
  - spec/scorm_engine/api/endpoints/courses/import_spec.rb
365
388
  - spec/scorm_engine/api/endpoints/courses_spec.rb
@@ -397,8 +420,9 @@ files:
397
420
  homepage: https://github.com/instructure-bridge/scorm_engine
398
421
  licenses:
399
422
  - MIT
400
- metadata: {}
401
- post_install_message:
423
+ metadata:
424
+ documentation_uri: https://instructure-bridge.github.io/scorm_engine/
425
+ post_install_message:
402
426
  rdoc_options: []
403
427
  require_paths:
404
428
  - lib
@@ -406,16 +430,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
406
430
  requirements:
407
431
  - - ">="
408
432
  - !ruby/object:Gem::Version
409
- version: '0'
433
+ version: '2.5'
410
434
  required_rubygems_version: !ruby/object:Gem::Requirement
411
435
  requirements:
412
436
  - - ">="
413
437
  - !ruby/object:Gem::Version
414
438
  version: '0'
415
439
  requirements: []
416
- rubyforge_project:
417
- rubygems_version: 2.7.6
418
- signing_key:
440
+ rubygems_version: 3.1.3
441
+ signing_key:
419
442
  specification_version: 4
420
- summary: Ruby Client for Rustici's SCORM Engine 2017.1 API
443
+ summary: Ruby Client for Rustici's SCORM Engine API
421
444
  test_files: []