Sha256: 6a41df410cada2944f4a68a6050d1f1cf244838c7f6463509b0f87131aad7c33
Contents?: true
Size: 1.68 KB
Versions: 1
Compression:
Stored size: 1.68 KB
Contents
# frozen_string_literal: true ## # Usage example: # # ConvenientService::Examples::Standard::Gemfile::Services::AssertNpmPackageAvailable.result(name: "lodash") # module ConvenientService module Examples module Standard module Gemfile module Services class AssertNpmPackageAvailable include ConvenientService::Standard::Config ## # IMPORTANT: # - `CanHaveMethodSteps` is disabled in the Standard config since it causes race conditions in combination with `CanHaveStubbedResult`. # - It will be reenabled after the introduction of thread-safety specs. # - Do not use it in production yet. # middlewares :step, scope: :class do use ConvenientService::Plugins::Service::CanHaveMethodSteps::Middleware end attr_reader :name step :validate_name step Services::AssertNodeAvailable ## # NOTE: `> /dev/null 2>&1` is used to hide output. # https://unix.stackexchange.com/a/119650/394253 # # NOTE: For `npm list` and its options docs, see # https://docs.npmjs.com/cli/v7/commands/npm-ls # step Services::RunShell, in: {command: -> { "npm list #{name} --depth=0 > /dev/null 2>&1" }} def initialize(name:) @name = name end private def validate_name return failure(name: "Name is `nil`") if name.nil? return failure(name: "Name is empty") if name.empty? success end end end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
convenient_service-0.11.0 | lib/convenient_service/examples/standard/gemfile/services/assert_npm_package_available.rb |