Class: SpaceArchitect::CLI::Architect::Variant::Add

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(repo:, iteration:, space: nil, pairs:, base: nil, prompt: nil, **opts) ⇒ Object



285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
# File 'lib/space_architect/cli/architect.rb', line 285

def call(repo:, iteration:, space: nil, pairs:, base: nil, prompt: nil, **opts)
  setup_terminal(**opts.slice(:color, :colors))
  handle_errors do
    render(store.find(space)) do |sp|
      parsed_pairs = pairs.to_s.split(",").map do |spec|
        harness, model = spec.split(":", 2)
        model = nil if model.nil? || model.empty?
        [harness, model]
      end

      mission = ArchitectMission.new(space: sp)
      variants = mission.variant_add(repo, iteration, parsed_pairs, base: base, prompt: prompt)
      variants.each do |v|
        terminal.say "#{v[:name]} · #{v[:harness]} · #{v[:model] || "(default)"} · #{terminal.path(v[:worktree])}"
      end
      CLI.record_outcome(Outcome.new(exit_code: 0))
    end
  end
end