class EmbeddedJs::Commands::Preinstall

Constants

ENV_VARIABLE_NAME

Attributes

command_runner[R]
package_manager[R]

Public Class Methods

call(gems:) click to toggle source
# File lib/embedded_js/commands/preinstall.rb, line 13
def call(gems:)
  new.call(gems: gems)
end
new( command_runner: Adaptors::CommandRunner.new, package_manager: PackageManagers::Factory.build(EmbeddedJs.config.package_manager) ) click to toggle source
# File lib/embedded_js/commands/preinstall.rb, line 18
def initialize(
  command_runner: Adaptors::CommandRunner.new,
  package_manager: PackageManagers::Factory.build(EmbeddedJs.config.package_manager)
)
  @command_runner = command_runner
  @package_manager = package_manager
end

Public Instance Methods

call(gems:) click to toggle source
# File lib/embedded_js/commands/preinstall.rb, line 26
def call(gems:)
  return if ENV.fetch(ENV_VARIABLE_NAME, nil)

  gems.each(&method(:install_embedded_package))
end

Private Instance Methods

install_embedded_package(gem) click to toggle source
# File lib/embedded_js/commands/preinstall.rb, line 36
def install_embedded_package(gem)
  embedded_jsage = GemPackage.new(gem)

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