Class: Exam::PassingCriterion
- Inherits:
-
Object
- Object
- Exam::PassingCriterion
show all
- Defined in:
- app/models/exam/passing_criterion.rb
Defined Under Namespace
Classes: None, PassedExercises, Percentage
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
Returns a new instance of PassingCriterion.
5
6
7
|
# File 'app/models/exam/passing_criterion.rb', line 5
def initialize(value)
@value = value
end
|
Instance Attribute Details
#value ⇒ Object
Returns the value of attribute value.
3
4
5
|
# File 'app/models/exam/passing_criterion.rb', line 3
def value
@value
end
|
Class Method Details
.parse(type, value) ⇒ Object
21
22
23
|
# File 'app/models/exam/passing_criterion.rb', line 21
def self.parse(type, value)
parse_criterion_type(type, value)
end
|
.parse_criterion_type(type, value) ⇒ Object
25
26
27
28
29
|
# File 'app/models/exam/passing_criterion.rb', line 25
def self.parse_criterion_type(type, value)
"Exam::PassingCriterion::#{type.camelize}".constantize.new(value)
rescue
raise "Invalid criterion type #{type}"
end
|
Instance Method Details
#as_json ⇒ Object
13
14
15
|
# File 'app/models/exam/passing_criterion.rb', line 13
def as_json
{type: type, value: value}
end
|
#ensure_valid! ⇒ Object
17
18
19
|
# File 'app/models/exam/passing_criterion.rb', line 17
def ensure_valid!
raise "Invalid criterion value #{value} for #{type}" unless valid_passing_grade?
end
|
#type ⇒ Object
9
10
11
|
# File 'app/models/exam/passing_criterion.rb', line 9
def type
self.class.name.demodulize.underscore
end
|