scorm_engine 0.7.3 → 0.9.0

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 (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: []