module ScormEngine::Api::Endpoints
Public Instance Methods
get_registration_launch_link(options = {})
click to toggle source
Returns the link to use to launch this registration
@param [Hash] options
@option options [String] :registration_id
The ID of the registration.
@option options [Integer] :expiry (0)
Number of seconds from now this link will expire in. Use 0 for no expiration.
@option options [String] :redirect_on_exit_url
The URL the application should redirect to when the learner exits a course. If not specified, configured value will be used.
@return [String]
# File lib/scorm_engine/api/endpoints/registrations.rb, line 307 def get_registration_launch_link(options = {}) require_options(options, :registration_id) options = options.dup registration_id = options.delete(:registration_id) options[:redirectOnExitUrl] = options.delete(:redirect_on_exit_url) if options.key?(:redirect_on_exit_url) response = get("registrations/#{registration_id}/launchLink", options) result = response.success? ? response.body["launchLink"] : nil Response.new(raw_response: response, result: result) end
Private Instance Methods
require_exclusive_option(haystack = {}, *sets_of_needles)
click to toggle source
Ensure that exactly one of the keys are present in the hash passed and raise an error if not.
@param [Hash] haystack
The option hash in which to search for the given, optionally nested, key[s].
@param [Array] sets_of_needles
A splat of keys or array of nested keys to search for.
@raise [ArgumentError] if zero or more than one key is found.
# File lib/scorm_engine/api/endpoints.rb, line 66 def require_exclusive_option(haystack = {}, *sets_of_needles) options_set = sets_of_needles.map { |needles| require_option(haystack, false, *needles) ? needles : nil }.compact return true if options_set.one? raise(ArgumentError, "Exclusive option required. One of: #{sets_of_needles.map { |n| Array(n).join("/") }.join(", ")}") end
require_option(haystack, raise_error, *needles)
click to toggle source
# File lib/scorm_engine/api/endpoints.rb, line 72 def require_option(haystack, raise_error, *needles) value = needles.reduce(haystack) { |m, o| value_for_key(m, o) } return true unless value.nil? raise(ArgumentError, "Required option #{needles.join("/")} missing") if raise_error false end
require_options(haystack = {}, *sets_of_needles)
click to toggle source
Ensure that all of the keys are present in the hash passed and raise an error if not.
@example
require_options({foo: 1, bar: {"baz" => 2}}, :foo, [:bar, :baz], :moo) # will raise an errror due to lack of :moo
@param [Hash] haystack
The option hash in which to search for the given, optionally nested, key[s].
@param [Array] sets_of_needles
A splat of keys or array of nested keys to search for.
@raise [ArgumentError] if any needle isn't found.
# File lib/scorm_engine/api/endpoints.rb, line 49 def require_options(haystack = {}, *sets_of_needles) sets_of_needles.each { |needles| require_option(haystack, true, *needles) } end
value_for_key(memo, obj)
click to toggle source
# File lib/scorm_engine/api/endpoints.rb, line 79 def value_for_key(memo, obj) return memo[obj.to_sym] if memo.key?(obj.to_sym) return memo[obj.to_s] if memo.key?(obj.to_s) nil end