web/app/models/compare_query.rb
author Marcel Hlopko <marcel@hlopko.com>
Tue, 17 Nov 2015 15:05:38 +0100
changeset 306 8050d8d3681f
parent 241 6c56f95bddd3
permissions -rw-r--r--
Optimize CompareController#filter
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
91
d430a8ac253d comparison page kinda works
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
     1
class CompareQuery
d430a8ac253d comparison page kinda works
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
     2
  include ActiveModel::Model
d430a8ac253d comparison page kinda works
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
     3
179
620d2ceb6ddc change compare table to always show all configurations
Marcel Hlopko <marcel.hlopko@gmail.com>
parents: 111
diff changeset
     4
  attr_accessor :benchmark_infos
91
d430a8ac253d comparison page kinda works
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
     5
d430a8ac253d comparison page kinda works
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
     6
  def initialize(*args)
d430a8ac253d comparison page kinda works
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
     7
    super
236
2565b32e93b3 Fix n+1 on compare page, get rid of unused code
Marcel Hlopko <marcel@hlopko.com>
parents: 179
diff changeset
     8
179
620d2ceb6ddc change compare table to always show all configurations
Marcel Hlopko <marcel.hlopko@gmail.com>
parents: 111
diff changeset
     9
    @benchmark_infos ||= {}
91
d430a8ac253d comparison page kinda works
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    10
  end
d430a8ac253d comparison page kinda works
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    11
179
620d2ceb6ddc change compare table to always show all configurations
Marcel Hlopko <marcel.hlopko@gmail.com>
parents: 111
diff changeset
    12
  def filtered_benchmark_infos
306
8050d8d3681f Optimize CompareController#filter
Marcel Hlopko <marcel@hlopko.com>
parents: 241
diff changeset
    13
    BenchmarkInfo
8050d8d3681f Optimize CompareController#filter
Marcel Hlopko <marcel@hlopko.com>
parents: 241
diff changeset
    14
      .where(id: filtered_benchmark_info_ids)
8050d8d3681f Optimize CompareController#filter
Marcel Hlopko <marcel@hlopko.com>
parents: 241
diff changeset
    15
      .includes(benchmark_results: [ :benchmark_batch,
8050d8d3681f Optimize CompareController#filter
Marcel Hlopko <marcel@hlopko.com>
parents: 241
diff changeset
    16
                                     :benchmark_durations,
8050d8d3681f Optimize CompareController#filter
Marcel Hlopko <marcel@hlopko.com>
parents: 241
diff changeset
    17
                                     :benchmark_parameters ])
91
d430a8ac253d comparison page kinda works
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    18
  end
d430a8ac253d comparison page kinda works
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    19
241
6c56f95bddd3 Update compare view, fix formatting
Marcel Hlopko <marcel@hlopko.com>
parents: 236
diff changeset
    20
  def filtered_benchmark_info_ids
306
8050d8d3681f Optimize CompareController#filter
Marcel Hlopko <marcel@hlopko.com>
parents: 241
diff changeset
    21
    benchmark_infos.select(&:present?).compact
241
6c56f95bddd3 Update compare view, fix formatting
Marcel Hlopko <marcel@hlopko.com>
parents: 236
diff changeset
    22
  end
91
d430a8ac253d comparison page kinda works
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    23
d430a8ac253d comparison page kinda works
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
diff changeset
    24
end