Class: RailsErrorDashboard::Commands::CalculateCascadeProbability

Inherits:
Object
  • Object
show all
Defined in:
lib/rails_error_dashboard/commands/calculate_cascade_probability.rb

Overview

Command: Calculate and persist cascade probability for a pattern Probability = (times child follows parent) / (total parent occurrences)

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(pattern) ⇒ CalculateCascadeProbability

Returns a new instance of CalculateCascadeProbability.



12
13
14
# File 'lib/rails_error_dashboard/commands/calculate_cascade_probability.rb', line 12

def initialize(pattern)
  @pattern = pattern
end

Class Method Details

.call(pattern) ⇒ Object



8
9
10
# File 'lib/rails_error_dashboard/commands/calculate_cascade_probability.rb', line 8

def self.call(pattern)
  new(pattern).call
end

Instance Method Details

#callObject



16
17
18
19
20
21
22
23
24
# File 'lib/rails_error_dashboard/commands/calculate_cascade_probability.rb', line 16

def call
  parent_occurrence_count = @pattern.parent_error.error_occurrences.count
  return if parent_occurrence_count.zero?

  @pattern.cascade_probability = (@pattern.frequency.to_f / parent_occurrence_count).round(3)
  @pattern.save

  @pattern
end