Class: PriorityTest::Core::Test
- Inherits:
-
Sequel::Model
- Object
- Sequel::Model
- PriorityTest::Core::Test
show all
- Includes:
- Comparable, ValidationsHelper
- Defined in:
- lib/priority_test/core/test.rb
Constant Summary
collapse
- NUMBER_OF_RESULTS =
5
Class Method Summary
collapse
Instance Method Summary
collapse
#validates_includes, #validates_presence
Class Method Details
.all_in_priority_order ⇒ Object
13
14
15
|
# File 'lib/priority_test/core/test.rb', line 13
def self.all_in_priority_order
eager(:results).order(:priority, :avg_run_time).all
end
|
Instance Method Details
#<=>(other) ⇒ Object
17
18
19
20
21
|
# File 'lib/priority_test/core/test.rb', line 17
def <=>(other)
result = (priority <=> other.priority) if priority && other.priority
result = (avg_run_time <=> other.avg_run_time) if (result == 0 || !result) && avg_run_time && other.avg_run_time
result || 0
end
|
#results_key ⇒ Object
27
28
29
30
31
|
# File 'lib/priority_test/core/test.rb', line 27
def results_key
results_key = results.collect { |r| r.passed? ? 'P' : 'F' }.join
results_key << 'P' * (NUMBER_OF_RESULTS - results_key.size) if results_key.size < NUMBER_OF_RESULTS
results_key[0..(NUMBER_OF_RESULTS-1)]
end
|
#update_statistics ⇒ Object
33
34
35
36
37
38
39
40
|
# File 'lib/priority_test/core/test.rb', line 33
def update_statistics
stats_to_update = {}
prio = Priority[results_key]
stats_to_update.merge!(:priority => prio) if prio
stats_to_update.merge!(:avg_run_time => calculate_avg_run_time) if results.size > 0
self.update(stats_to_update)
end
|
#validate ⇒ Object
23
24
25
|
# File 'lib/priority_test/core/test.rb', line 23
def validate
validates_presence [ :identifier, :file_path ]
end
|