Class: Serverspec::Type::NpmPackage

Inherits:
Base
  • Object
show all
Defined in:
lib/octopus_serverspec_extensions/type/npm_package.rb

Instance Method Summary collapse

Constructor Details

#initialize(name) ⇒ NpmPackage

Returns a new instance of NpmPackage.



7
8
9
10
# File 'lib/octopus_serverspec_extensions/type/npm_package.rb', line 7

def initialize(name)
  @name = name
  @runner = Specinfra::Runner
end

Instance Method Details

#installed?(provider, version) ⇒ Boolean

Returns:

  • (Boolean)


12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# 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