Rcov C0 Coverage Information - RCov

app/models/mark.rb

Name Total Lines Lines of Code Total Coverage Code Coverage
app/models/mark.rb 56 44
100.00%
100.00%

Key

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.

Coverage Details

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