author | Marcel Hlopko <marcel.hlopko@gmail.com> |
Tue, 25 Jun 2013 22:11:10 +0200 | |
changeset 106 | eac4098d544d |
child 108 | 69aa849f6930 |
permissions | -rw-r--r-- |
106
eac4098d544d
huge refactoring to better fit what we agreed on
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff
changeset
|
1 |
# == Schema Information |
eac4098d544d
huge refactoring to better fit what we agreed on
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff
changeset
|
2 |
# |
eac4098d544d
huge refactoring to better fit what we agreed on
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff
changeset
|
3 |
# |
eac4098d544d
huge refactoring to better fit what we agreed on
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff
changeset
|
4 |
# id :integer not null, primary key |
eac4098d544d
huge refactoring to better fit what we agreed on
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff
changeset
|
5 |
# name :string(255) |
eac4098d544d
huge refactoring to better fit what we agreed on
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff
changeset
|
6 |
# language_id :integer |
eac4098d544d
huge refactoring to better fit what we agreed on
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff
changeset
|
7 |
# created_at :datetime |
eac4098d544d
huge refactoring to better fit what we agreed on
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff
changeset
|
8 |
# updated_at :datetime |
eac4098d544d
huge refactoring to better fit what we agreed on
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff
changeset
|
9 |
# |
eac4098d544d
huge refactoring to better fit what we agreed on
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff
changeset
|
10 |
|
eac4098d544d
huge refactoring to better fit what we agreed on
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff
changeset
|
11 |
class Runtime < ActiveRecord::Base |
eac4098d544d
huge refactoring to better fit what we agreed on
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff
changeset
|
12 |
|
eac4098d544d
huge refactoring to better fit what we agreed on
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff
changeset
|
13 |
belongs_to :language, dependent: :destroy, inverse_of: :runtimes |
eac4098d544d
huge refactoring to better fit what we agreed on
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff
changeset
|
14 |
has_many :benchmark_configurations, inverse_of: :runtime |
eac4098d544d
huge refactoring to better fit what we agreed on
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff
changeset
|
15 |
|
eac4098d544d
huge refactoring to better fit what we agreed on
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff
changeset
|
16 |
validates_presence_of :language_id, :name |
eac4098d544d
huge refactoring to better fit what we agreed on
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff
changeset
|
17 |
|
eac4098d544d
huge refactoring to better fit what we agreed on
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff
changeset
|
18 |
def all_benchmark_infos |
eac4098d544d
huge refactoring to better fit what we agreed on
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff
changeset
|
19 |
result = Set.new |
eac4098d544d
huge refactoring to better fit what we agreed on
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff
changeset
|
20 |
benchmark_batches.each do |batch| |
eac4098d544d
huge refactoring to better fit what we agreed on
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff
changeset
|
21 |
batch.benchmark_results.each { |r| result.add r.benchmark_info } |
eac4098d544d
huge refactoring to better fit what we agreed on
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff
changeset
|
22 |
end |
eac4098d544d
huge refactoring to better fit what we agreed on
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff
changeset
|
23 |
result |
eac4098d544d
huge refactoring to better fit what we agreed on
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff
changeset
|
24 |
end |
eac4098d544d
huge refactoring to better fit what we agreed on
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff
changeset
|
25 |
|
eac4098d544d
huge refactoring to better fit what we agreed on
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff
changeset
|
26 |
def all_dates_when_performed |
eac4098d544d
huge refactoring to better fit what we agreed on
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff
changeset
|
27 |
SortedSet.new(benchmark_batches.map(&:performed_at).flatten).to_a |
eac4098d544d
huge refactoring to better fit what we agreed on
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff
changeset
|
28 |
end |
eac4098d544d
huge refactoring to better fit what we agreed on
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff
changeset
|
29 |
|
eac4098d544d
huge refactoring to better fit what we agreed on
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff
changeset
|
30 |
def results_at(time) |
eac4098d544d
huge refactoring to better fit what we agreed on
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff
changeset
|
31 |
batch = benchmark_batches.where(performed_at: time).first |
eac4098d544d
huge refactoring to better fit what we agreed on
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff
changeset
|
32 |
all_benchmark_infos.map do |info| |
eac4098d544d
huge refactoring to better fit what we agreed on
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff
changeset
|
33 |
batch.result_for(info) |
eac4098d544d
huge refactoring to better fit what we agreed on
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff
changeset
|
34 |
end |
eac4098d544d
huge refactoring to better fit what we agreed on
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff
changeset
|
35 |
end |
eac4098d544d
huge refactoring to better fit what we agreed on
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff
changeset
|
36 |
|
eac4098d544d
huge refactoring to better fit what we agreed on
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff
changeset
|
37 |
def results_of(benchmark_info, time) |
eac4098d544d
huge refactoring to better fit what we agreed on
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff
changeset
|
38 |
batch_with_given_date = benchmark_batches |
eac4098d544d
huge refactoring to better fit what we agreed on
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff
changeset
|
39 |
.where(performed_at: time) |
eac4098d544d
huge refactoring to better fit what we agreed on
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff
changeset
|
40 |
.first |
eac4098d544d
huge refactoring to better fit what we agreed on
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff
changeset
|
41 |
|
eac4098d544d
huge refactoring to better fit what we agreed on
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff
changeset
|
42 |
if batch_with_given_date |
eac4098d544d
huge refactoring to better fit what we agreed on
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff
changeset
|
43 |
batch_with_given_date |
eac4098d544d
huge refactoring to better fit what we agreed on
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff
changeset
|
44 |
.benchmark_results(benchmark_info: benchmark_info) |
eac4098d544d
huge refactoring to better fit what we agreed on
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff
changeset
|
45 |
.first |
eac4098d544d
huge refactoring to better fit what we agreed on
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff
changeset
|
46 |
else |
eac4098d544d
huge refactoring to better fit what we agreed on
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff
changeset
|
47 |
nil |
eac4098d544d
huge refactoring to better fit what we agreed on
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff
changeset
|
48 |
end |
eac4098d544d
huge refactoring to better fit what we agreed on
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff
changeset
|
49 |
end |
eac4098d544d
huge refactoring to better fit what we agreed on
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff
changeset
|
50 |
|
eac4098d544d
huge refactoring to better fit what we agreed on
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff
changeset
|
51 |
end |