Skip to content

Commit

Permalink
Refactor build_columns
Browse files Browse the repository at this point in the history
  • Loading branch information
bmarkons committed Jun 6, 2017
1 parent 9fd6898 commit 3384478
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 40 deletions.
4 changes: 4 additions & 0 deletions app/models/benchmark_type.rb
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
class BenchmarkType < ApplicationRecord
default_scope { order("#{self.table_name}.category ASC") }
scope :all_except, -> (user) { where.not(id: user) }
scope :with_result_type, -> (benchmark_result_type) {
joins(:benchmark_result_types)
.where("benchmark_result_types.id" => benchmark_result_type)
}

has_many :benchmark_runs, dependent: :destroy

Expand Down
65 changes: 25 additions & 40 deletions app/services/chart_builder.rb
Original file line number Diff line number Diff line change
Expand Up @@ -38,53 +38,38 @@ def initialize(benchmark_runs, benchmark_result_type, comparing_runs = [])
end

def build_columns
if @comparing_runs.present?
(@benchmark_runs + @comparing_runs)
.sort_by { |benchmark_run| benchmark_run.initiator.created_at }
.each do |benchmark_run|
version = nil
if block_given?
version = yield(benchmark_run)
@categories ||= []
@categories << version if version != @categories.last
end

benchmark_run.result.each do |key, value|
@columns["#{key}_#{benchmark_run.benchmark_type.category}"] ||= []
@columns["#{key}_#{benchmark_run.benchmark_type.category}"] << [version, value.to_f]
end
end

new_columns = []

@columns.each do |name, data|
new_columns << { name: name, data: data }
end
columns = {}

@columns = new_columns
self
if @comparing_runs.present?
runs = (@benchmark_runs + @comparing_runs)
.sort_by { |run| run.initiator.created_at }
else
@benchmark_runs.each do |benchmark_run|
if block_given?
version = yield(benchmark_run)
@categories ||= []
@categories << version if version != @categories.last
end
runs = @benchmark_runs
end

benchmark_run.result.each do |key, value|
@columns[key] ||= []
@columns[key] << value.to_f
end
runs.each do |run|
version = nil
if block_given?
version = yield(run)
@categories ||= []
@categories << version if version != @categories.last
end

new_columns = []

@columns.each do |name, data|
new_columns << { name: name, data: data }
run.result.each do |key, value|
if @comparing_runs.present?
columns["#{key}_#{run.benchmark_type.category}"] ||= []
columns["#{key}_#{run.benchmark_type.category}"] << [version, value.to_f]
else
columns[key] ||= []
columns[key] << value.to_f
end
end
end

@columns = new_columns
self
@columns = columns.map do |name, data|
{ name: name, data: data }
end

self
end
end

0 comments on commit 3384478

Please sign in to comment.