| Name | Total Lines | Lines of Code | Total Coverage | Code Coverage |
|---|---|---|---|---|
| app/models/mark.rb | 56 | 44 | 100.00%
|
100.00%
|
Code reported as executed by Ruby looks like this...and this: this line is also marked as covered.Lines considered as run by rcov, but not reported by Ruby, look like this,and this: these lines were inferred by rcov (using simple heuristics).Finally, here's a line marked as not executed.
1 class Mark < ActiveRecord::Base |
2 # When a mark is created, or updated, we need to make sure that that |
3 # Result has not been released to students |
4 before_save :ensure_not_released_to_students |
5 validate :valid_mark |
6 before_update :ensure_not_released_to_students |
7 after_save :update_grouping_mark |
8 |
9 belongs_to :markable, :polymorphic => true |
10 belongs_to :result |
11 validates_presence_of :result_id, :markable_id, :markable_type |
12 validates_numericality_of :result_id, |
13 :only_integer => true, |
14 :greater_than => 0, |
15 :message => "result_id must be an id that is an integer greater than 0" |
16 |
17 validates_numericality_of :mark, |
18 :allow_nil => true, |
19 :message => "must be a number" |
20 |
21 validates_numericality_of :markable_id, |
22 :only_integer => true, |
23 :greater_than => 0, |
24 :message => "Criterion must be an id that is an integer greater than 0" |
25 |
26 validates_uniqueness_of :markable_id, |
27 :scope => [:result_id, :markable_type] |
28 |
29 def valid_mark |
30 if self.markable_type == "RubricCriterion" and !self.mark.nil? and (self.mark > 4 or self.mark < 0) |
31 errors.add(:mark, I18n.t("mark.error.validate_rubric")) |
32 return false |
33 end |
34 if self.markable_type == "FlexibleCriterion" and !self.mark.nil? and (self.mark > self.markable.max or self.mark < 0) |
35 errors.add(:mark, I18n.t("mark.error.validate_flexible")) |
36 return false |
37 end |
38 end |
39 #return the current mark for this criterion |
40 def get_mark |
41 criterion = self.markable |
42 weight = criterion.get_weight |
43 return mark.to_f * weight |
44 end |
45 |
46 private |
47 |
48 def ensure_not_released_to_students |
49 return !result.released_to_students |
50 end |
51 |
52 def update_grouping_mark |
53 self.result.update_total_mark |
54 end |
55 end |
56 |
Generated on Sun Feb 05 00:08:07 -0500 2012 with rcov 0.9.10