Module: Gem::Skill::Runner

Defined in:
lib/gem/skill/runner.rb

Overview

Core install logic shared by gem_command and bundle_command. Callers are responsible for spinner.auto_spin and title setup before calling.

Class Method Summary collapse

Class Method Details

.install_skill(gem_name, version, spinner, force:, model:) ⇒ Object

Generate + cache + link one skill. Returns nil on success, error message string on failure.



9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/gem/skill/runner.rb', line 9

def self.install_skill(gem_name, version, spinner, force:, model:)
  if Cache.cached?(gem_name, version) && !force
    Linker.link(gem_name, version)
    spinner.success("already cached")
    return nil
  end
  Generator.new(gem_name, version, model: model).generate(force: force)
  Linker.link(gem_name, version)
  spinner.success("done")
  nil
rescue => e
  spinner.error("failed")
  e.message
end