Class: RailsConsolePro::Commands::Comparator::Runner

Inherits:
Object
  • Object
show all
Defined in:
lib/rails_console_pro/commands/compare_command.rb

Overview

Internal runner that collects comparison data

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(config) ⇒ Runner

Returns a new instance of Runner.



53
54
55
56
# File 'lib/rails_console_pro/commands/compare_command.rb', line 53

def initialize(config)
  @config = config
  @comparisons = []
end

Instance Attribute Details

#comparisonsObject (readonly)

Returns the value of attribute comparisons.



51
52
53
# File 'lib/rails_console_pro/commands/compare_command.rb', line 51

def comparisons
  @comparisons
end

#configObject (readonly)

Returns the value of attribute config.



51
52
53
# File 'lib/rails_console_pro/commands/compare_command.rb', line 51

def config
  @config
end

Instance Method Details

#build_resultObject



66
67
68
69
# File 'lib/rails_console_pro/commands/compare_command.rb', line 66

def build_result
  winner = @comparisons.reject { |c| c.error }.min_by { |c| c.duration_ms || Float::INFINITY }
  CompareResult.new(comparisons: @comparisons, winner: winner)
end

#run(name, &block) ⇒ Object



58
59
60
61
62
63
64
# File 'lib/rails_console_pro/commands/compare_command.rb', line 58

def run(name, &block)
  return unless block_given?

  comparison = execute_comparison(name, block)
  @comparisons << comparison
  comparison
end