Class: RBS::Collection::Installer
Relationships & Source Files | |
Inherits: | Object |
Defined in: | lib/rbs/collection/installer.rb |
Class Method Summary
Instance Attribute Summary
Instance Method Summary
Constructor Details
.new(lockfile_path:, stdout: $stdout) ⇒ Installer
# File '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
Instance Attribute Details
#lockfile (readonly)
[ GitHub ]# File 'lib/rbs/collection/installer.rb', line 6
attr_reader :lockfile
#stdout (readonly)
[ GitHub ]# File 'lib/rbs/collection/installer.rb', line 7
attr_reader :stdout
Instance Method Details
#install_from_lockfile
[ GitHub ]# File '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