Class: Space::Architect::CLI::Architect::Variant::Compare

Inherits:
BaseCommand
  • Object
show all
Defined in:
lib/space_architect/cli/architect.rb

Instance Method Summary collapse

Methods inherited from BaseCommand

commit_message_options, phase

Instance Method Details

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



692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
# File 'lib/space_architect/cli/architect.rb', line 692

def call(iteration:, space: nil, **opts)
  setup_terminal(**opts.slice(:color, :colors))
  handle_errors do
    render(store.find(space)) do |sp|
      project = ArchitectProject.new(space: sp)
      info = project.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