Class: ScormEngine::Models::Course
- Defined in:
- lib/scorm_engine/models/course.rb
Instance Attribute Summary collapse
-
#course_learning_standard ⇒ String
The course's learning standard.
-
#description ⇒ Object
TODO: Not sure we want this to be settable.
-
#id ⇒ Object
TODO: Not sure we want this to be settable.
-
#registration_count ⇒ Object
TODO: Not sure we want this to be settable.
-
#scaled_passing_score ⇒ Object
TODO: Not sure we want this to be settable.
-
#title ⇒ Object
TODO: Not sure we want this to be settable.
-
#updated ⇒ Object
TODO: Not sure we want this to be settable.
-
#version ⇒ Object
TODO: Not sure we want this to be settable.
-
#web_path ⇒ String
The web path at which the course's contents is hosted.
Class Method Summary collapse
-
.get_scaled_passing_score_from_api(options = {}) ⇒ Integer
Extract and normalize the scaled passing score from the API options.
-
.get_title_from_api(options = {}) ⇒ String
Extract and sanitize the title from the API options.
- .new_from_api(options = {}) ⇒ Object
Methods inherited from Base
Instance Attribute Details
#course_learning_standard ⇒ String
The course's learning standard.
15 16 17 |
# File 'lib/scorm_engine/models/course.rb', line 15 def course_learning_standard @course_learning_standard end |
#description ⇒ Object
TODO: Not sure we want this to be settable. Will depend on how we go about creating/updating records. For now it makes it easier to create instances from API options hash.
9 10 11 |
# File 'lib/scorm_engine/models/course.rb', line 9 def description @description end |
#id ⇒ Object
TODO: Not sure we want this to be settable. Will depend on how we go about creating/updating records. For now it makes it easier to create instances from API options hash.
9 10 11 |
# File 'lib/scorm_engine/models/course.rb', line 9 def id @id end |
#registration_count ⇒ Object
TODO: Not sure we want this to be settable. Will depend on how we go about creating/updating records. For now it makes it easier to create instances from API options hash.
9 10 11 |
# File 'lib/scorm_engine/models/course.rb', line 9 def registration_count @registration_count end |
#scaled_passing_score ⇒ Object
TODO: Not sure we want this to be settable. Will depend on how we go about creating/updating records. For now it makes it easier to create instances from API options hash.
9 10 11 |
# File 'lib/scorm_engine/models/course.rb', line 9 def scaled_passing_score @scaled_passing_score end |
#title ⇒ Object
TODO: Not sure we want this to be settable. Will depend on how we go about creating/updating records. For now it makes it easier to create instances from API options hash.
9 10 11 |
# File 'lib/scorm_engine/models/course.rb', line 9 def title @title end |
#updated ⇒ Object
TODO: Not sure we want this to be settable. Will depend on how we go about creating/updating records. For now it makes it easier to create instances from API options hash.
9 10 11 |
# File 'lib/scorm_engine/models/course.rb', line 9 def updated @updated end |
#version ⇒ Object
TODO: Not sure we want this to be settable. Will depend on how we go about creating/updating records. For now it makes it easier to create instances from API options hash.
9 10 11 |
# File 'lib/scorm_engine/models/course.rb', line 9 def version @version end |
#web_path ⇒ String
The web path at which the course's contents is hosted. For AICC courses, refer to the href proprety of the child activities as this value will not be available.
22 23 24 |
# File 'lib/scorm_engine/models/course.rb', line 22 def web_path @web_path end |
Class Method Details
.get_scaled_passing_score_from_api(options = {}) ⇒ Integer
Extract and normalize the scaled passing score from the API options.
67 68 69 70 71 72 73 74 |
# File 'lib/scorm_engine/models/course.rb', line 67 def self.get_scaled_passing_score_from_api( = {}) first_child = .fetch("rootActivity", {}).fetch("children", [{}]).first score = first_child.is_a?(Hash) ? first_child["scaledPassingScore"] : nil return if score.nil? score = score.to_f score *= 100 if score <= 1.0 score.to_i end |
.get_title_from_api(options = {}) ⇒ String
Extract and sanitize the title from the API options.
Special consideration is given to two commonly found, but useless titles which if found will result in a blank title.
52 53 54 55 56 |
# File 'lib/scorm_engine/models/course.rb', line 52 def self.get_title_from_api( = {}) title = ScormEngine::Utils.sanitized_text(["title"]) title = "" if ["Title", "Captivate E-Learning Course"].include?(title) title end |
.new_from_api(options = {}) ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/scorm_engine/models/course.rb', line 24 def self.new_from_api( = {}) this = new this. = .dup this.id = ["id"] this.version = ["version"] this.title = get_title_from_api() this.registration_count = ["registrationCount"] this.updated = Time.parse(["updated"]) if .key?("updated") this.description = .fetch("metadata", {})["description"] this.scaled_passing_score = get_scaled_passing_score_from_api() this.course_learning_standard = ["courseLearningStandard"] this.web_path = ["webPath"] this end |