Class: SkillBench::Services::ExitCodeCalculator

Inherits:
Object
  • Object
show all
Defined in:
lib/skill_bench/services/exit_code_calculator.rb

Overview

Calculates the exit code based on comparison results.

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(result_a, result_b) ⇒ ExitCodeCalculator

Returns a new instance of ExitCodeCalculator.

Parameters:

  • result_a (Hash)

    First evaluation result

  • result_b (Hash)

    Second evaluation result



18
19
20
21
# File 'lib/skill_bench/services/exit_code_calculator.rb', line 18

def initialize(result_a, result_b)
  @result_a = result_a
  @result_b = result_b
end

Class Method Details

.call(result_a, result_b) ⇒ Integer

Calculates the exit code from comparison results.

Parameters:

  • result_a (Hash)

    First evaluation result

  • result_b (Hash)

    Second evaluation result

Returns:

  • (Integer)

    0 if both pass, 1 otherwise



12
13
14
# File 'lib/skill_bench/services/exit_code_calculator.rb', line 12

def self.call(result_a, result_b)
  new(result_a, result_b).call
end

Instance Method Details

#callInteger

Calculates the exit code from comparison results.

Returns:

  • (Integer)

    0 if both pass, 1 otherwise



26
27
28
29
30
31
32
33
34
35
36
# File 'lib/skill_bench/services/exit_code_calculator.rb', line 26

def call
  report_a = @result_a.dig(:response, :report)
  report_b = @result_b.dig(:response, :report)

  verdict_a = report_a.is_a?(Hash) ? report_a[:verdict] : report_a&.verdict
  verdict_b = report_b.is_a?(Hash) ? report_b[:verdict] : report_b&.verdict

  passed_a = verdict_a == 'PASS'
  passed_b = verdict_b == 'PASS'
  passed_a && passed_b ? 0 : 1
end