Class: SpaceArchitect::CLI::Architect::Variant::Compare

Inherits:
Dry::CLI::Command
  • Object
show all
Includes:
GlobalOptions, Helpers
Defined in:
lib/space_architect/cli/architect.rb

Instance Method Summary collapse

Methods included from Helpers

#display_date, #handle_errors, #project_config, #render, #setup_terminal, #state, #store, #terminal

Methods included from GlobalOptions

included

Instance Method Details

#call(iteration:, space: nil, **opts) ⇒ Object



340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
# File 'lib/space_architect/cli/architect.rb', line 340

def call(iteration:, space: nil, **opts)
  setup_terminal(**opts.slice(:color, :colors))
  handle_errors do
    render(store.find(space)) do |sp|
      mission = ArchitectMission.new(space: sp)
      info = mission.variant_compare(iteration)

      terminal.say "Variant comparison: #{iteration} (freeze #{info[:freeze_sha]&.[](0, 8) || "-"})"
      terminal.say "Winner: #{info[:winner] || '(none)'}"
      terminal.say ""
      rows = info[:variants].map do |v|
        [
          v[:name],
          v[:harness],
          v[:model] || "(default)",
          v[:effort] || "-",
          v[:status] == "winner" ? "WINNER" : v[:status],
          v[:integration_branch] || "-",
          v[:base_sha]&.[](0, 8) || "-"
        ]
      end
      terminal.say terminal.table(%w[Variant Harness Model Effort Status Integration Base], rows)

      CLI.record_outcome(Outcome.new(exit_code: 0))
    end
  end
end