diff --git a/lib/scorm_cloud.rb b/lib/scorm_cloud.rb index fb07f8b..5a32e50 100644 --- a/lib/scorm_cloud.rb +++ b/lib/scorm_cloud.rb @@ -8,6 +8,7 @@ require 'scorm_cloud/base_object' require 'scorm_cloud/course' require 'scorm_cloud/registration' +require 'scorm_cloud/registration_result' require 'scorm_cloud/base_service' require 'scorm_cloud/debug_service' diff --git a/lib/scorm_cloud/registration_result.rb b/lib/scorm_cloud/registration_result.rb new file mode 100644 index 0000000..4f26075 --- /dev/null +++ b/lib/scorm_cloud/registration_result.rb @@ -0,0 +1,21 @@ +module ScormCloud + class RegistrationResult < ScormCloud::BaseObject + + attr_accessor :format, :regid, :instanceid, :complate, :success, + :totaltime, :score + + + def self.from_xml(element) + reg_result = RegistrationResult.new + reg_result.format = "course" + reg_result.regid = element.elements["rsp"].elements["registrationreport"].attributes["regid"] + reg_result.instanceid = element.elements["rsp"].elements["registrationreport"].attributes["instanceid"] + reg_result.complate = element.elements["rsp"].elements["registrationreport"][0].text + reg_result.success = element.elements["rsp"].elements["registrationreport"][1].text + reg_result.totaltime = element.elements["rsp"].elements["registrationreport"][2].text + reg_result.score = element.elements["rsp"].elements["registrationreport"][3].text + reg_result + end + + end +end \ No newline at end of file diff --git a/lib/scorm_cloud/registration_service.rb b/lib/scorm_cloud/registration_service.rb index 3b518fd..b592852 100644 --- a/lib/scorm_cloud/registration_service.rb +++ b/lib/scorm_cloud/registration_service.rb @@ -32,6 +32,11 @@ def get_registration_result(reg_id, format="course") connection.call_raw("rustici.registration.getRegistrationResult", { :regid => reg_id, :format => format }) end + def get_registration_result_for_course(reg_id) + xml = REXML::Document.new connection.call_raw("rustici.registration.getRegistrationResult", { :regid => reg_id, :format => "course" }) + RegistrationResult.from_xml(xml) + end + def launch(reg_id, redirect_url, options = {}) params = options.merge({ :regid => reg_id,