Class: RailsXapi::Result

Inherits:
ApplicationRecord show all
Includes:
Serializable
Defined in:
app/models/rails_xapi/result.rb

Overview

Represents a result containing response, success, and score data.

Constant Summary

Constants included from Serializable

Serializable::LATIN_LETTERS, Serializable::LATIN_LETTERS_REGEX

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#duration_in_secondsObject

Returns the value of attribute duration_in_seconds.



12
13
14
# File 'app/models/rails_xapi/result.rb', line 12

def duration_in_seconds
  @duration_in_seconds
end

Instance Method Details

#extensions=(extensions_data) ⇒ Object



56
57
58
59
60
61
62
63
64
65
66
67
68
# File 'app/models/rails_xapi/result.rb', line 56

def extensions=(extensions_data)
  unless extensions_data.is_a?(Hash)
    raise RailsXapi::Errors::XapiError,
          I18n.t(
            "rails_xapi.errors.attribute_must_be_a_hash",
            name: "extensions"
          )
  end

  extensions_data.each do |iri, data|
    extensions.build(iri: iri, value: serialized_value(data))
  end
end

#scoreObject



38
39
40
41
42
43
44
45
# File 'app/models/rails_xapi/result.rb', line 38

def score
  {
    scaled: score_scaled,
    raw: score_raw,
    min: score_min,
    max: score_max
  }.compact
end

#score=(value) ⇒ Object

Store the score object in the results table for convenience reasons.



29
30
31
32
33
34
35
36
# File 'app/models/rails_xapi/result.rb', line 29

def score=(value)
  validate_score(value)

  self.score_scaled = value[:scaled]
  self.score_raw = value[:raw]
  self.score_min = value[:min]
  self.score_max = value[:max]
end