class RBS::Collection::Installer

Attributes

lockfile[R]
stdout[R]

Public Class Methods

new(lockfile_path:, stdout: $stdout) click to toggle source
# File rbs-3.4.0/lib/rbs/collection/installer.rb, line 9
def initialize(lockfile_path:, stdout: $stdout)
  @lockfile = Config::Lockfile.from_lockfile(lockfile_path: lockfile_path, data: YAML.load_file(lockfile_path))
  @stdout = stdout
end

Public Instance Methods

install_from_lockfile() click to toggle source
# File rbs-3.4.0/lib/rbs/collection/installer.rb, line 14
def install_from_lockfile
  install_to = lockfile.fullpath
  install_to.mkpath
  selected = lockfile.gems.select do |name, gem|
    gem[:source].has?(name, gem[:version])
  end
  selected.each_value do |gem|
    gem[:source].install(
      dest: install_to,
      name: gem[:name],
      version: gem[:version],
      stdout: stdout
    )
  end
  CLI::ColoredIO.new(stdout: stdout).puts_green("It's done! #{selected.size} gems' RBSs now installed.")
end