class EnginePack::Preinstall

Constants

ENV_VARIABLE_NAME

Attributes

command_runner[R]
package_manager[R]

Public Class Methods

call(engines:) click to toggle source
# File lib/engine_pack/preinstall.rb, line 14
def call(engines:)
  new.call(engines: engines)
end
new( command_runner: CommandRunner.new, package_manager: PackageManagerFactory.build(EnginePack.config.package_manager) ) click to toggle source
# File lib/engine_pack/preinstall.rb, line 19
def initialize(
  command_runner: CommandRunner.new,
  package_manager: PackageManagerFactory.build(EnginePack.config.package_manager)
)
  @command_runner = command_runner
  @package_manager = package_manager
end

Public Instance Methods

call(engines:) click to toggle source
# File lib/engine_pack/preinstall.rb, line 27
def call(engines:)
  return if ENV.fetch(ENV_VARIABLE_NAME, nil)

  engines.each(&method(:install_engine))
end

Private Instance Methods

install_engine(engine) click to toggle source
# File lib/engine_pack/preinstall.rb, line 37
def install_engine(engine)
  engine_package = EnginePackage.new(engine)

  engine_package.with_path do |path|
    command_runner.run(
      package_manager.install_command(path),
      { ENV_VARIABLE_NAME => '1' }
    )
  end
end