Sha256: 53ff48189cf1d7fa7c9beeb9762f6ff2df6af24d4bacb7068634b6a14549266f
Contents?: true
Size: 879 Bytes
Versions: 8
Compression:
Stored size: 879 Bytes
Contents
# frozen_string_literal: true require "refinements/io" require "refinements/pathname" module Hanamismith module Extensions # Ensures NPM packages are installed if NPM is available. class NPM include Import[:kernel, :logger] using Refinements::IO using Refinements::Pathname def self.call(...) = new(...).call def initialize(configuration, **) super(**) @configuration = configuration end def call logger.error { "Unable to detect NPM. Install NPM and run: `npm install`." } unless run configuration end private attr_reader :configuration def run success = false configuration.project_root.change_dir do STDOUT.squelch { success = kernel.system "command -v npm && npm install" } end success end end end end
Version data entries
8 entries across 8 versions & 1 rubygems