class Serverspec::Type::NpmPackage

Public Class Methods

new(name) click to toggle source
# File lib/octopus_serverspec_extensions/type/npm_package.rb, line 7
def initialize(name)
  @name = name
  @runner = Specinfra::Runner
end

Public Instance Methods

installed?(provider, version) click to toggle source
# File lib/octopus_serverspec_extensions/type/npm_package.rb, line 12
def installed?(provider, version)
  command_result = @runner.run_command("npm list -g #{name}")

  software = command_result.stdout.split("\n").each_with_object({}) do |s, h|
    if s.include? "@"
      package_name, package_version = s.split('@')
      package_name = package_name.gsub(/.*? /, '')
      h[String(package_name).strip.downcase] = String(package_version).strip.downcase
    end
    h
  end

  if (version.nil?)
    !software[name.downcase].nil?
  else
    software[name.downcase] == version
  end
end