--- a/web/app/models/benchmark_info.rb Tue Oct 28 11:09:47 2014 +0100
+++ b/web/app/models/benchmark_info.rb Tue Oct 28 16:16:56 2014 +0100
@@ -1,3 +1,34 @@
+class BenchmarkInfo < ActiveRecord::Base
+
+ has_many :benchmark_results, dependent: :destroy, inverse_of: :benchmark_info
+
+ validates_presence_of :name, :benchmark_class, :benchmark_selector
+
+ def self.from_json(data)
+ bench_info = BenchmarkInfo.find_by(name: data["name"])
+ unless bench_info
+ bench_info = BenchmarkInfo.create!(
+ name: data["name"],
+ benchmark_class: data["class"],
+ benchmark_selector: data["selector"],
+ description: data["description"]
+ )
+ end
+
+ bench_info
+ end
+
+ def to_results_json_for_configuration(configuration)
+ data = benchmark_results.
+ includes(:benchmark_batch, :benchmark_durations).
+ joins(:benchmark_batch).
+ where("benchmark_batches.benchmark_configuration_id = ?", configuration.id).
+ map(&:to_json)
+
+ { name: name, data: data }
+ end
+end
+
# == Schema Information
#
# Table name: benchmark_infos
@@ -11,21 +42,3 @@
# name :string(255)
#
-class BenchmarkInfo < ActiveRecord::Base
-
- has_many :benchmark_results, dependent: :destroy, inverse_of: :benchmark_info
-
- validates_presence_of :name, :benchmark_class, :benchmark_selector
-
- def BenchmarkInfo.from_json(data)
- bench_info = BenchmarkInfo.where(name: data["name"]).first
- bench_info = BenchmarkInfo.create!(
- name: data["name"],
- benchmark_class: data["class"],
- benchmark_selector: data["selector"],
- description: data["description"]
- ) unless bench_info
- return bench_info
-
- end
-end