Class: NPlusInsight::Analyzer

Inherits:
Object
  • Object
show all
Defined in:
lib/n_plus_insight/analyzer.rb

Instance Method Summary collapse

Constructor Details

#initialize(request:, queries:) ⇒ Analyzer

Returns a new instance of Analyzer.



3
4
5
6
# File 'lib/n_plus_insight/analyzer.rb', line 3

def initialize(request:, queries:)
  @request = request
  @queries = queries
end

Instance Method Details

#callObject



8
9
10
11
12
13
14
15
16
# File 'lib/n_plus_insight/analyzer.rb', line 8

def call
  repeated_shapes = @queries.group_by { |query| repeated_shape_key(query) }.values.select do |queries|
    queries.length >= NPlusInsight.configuration.minimum_repetitions
  end

  repeated_shapes
    .group_by { |queries| location_key(dominant_location(queries), queries.first.binds_signature) }
    .map { |_key, query_groups| build_detection(query_groups) }
end