Class: Inspec::Resources::GemPackage

Inherits:
Object
  • Object
show all
Defined in:
lib/resources/gem.rb

Instance Method Summary collapse

Constructor Details

#initialize(package_name) ⇒ GemPackage

Returns a new instance of GemPackage.



15
16
17
# File 'lib/resources/gem.rb', line 15

def initialize(package_name)
  @package_name = package_name
end

Instance Method Details

#infoObject



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/resources/gem.rb', line 19

def info
  return @info if defined?(@info)

  cmd = inspec.command("gem list --local -a -q \^#{@package_name}\$")
  @info = {
    installed: cmd.exit_status == 0,
    type: 'gem',
  }
  return @info unless @info[:installed]

  # extract package name and version
  # parses data like winrm (1.3.4, 1.3.3)
  params = /^\s*([^\(]*?)\s*\((.*?)\)\s*$/.match(cmd.stdout.chomp)
  versions = params[2].split(',')
  @info[:name] = params[1]
  @info[:version] = versions[0]
  @info
end

#installed?Boolean

Returns:

  • (Boolean)


38
39
40
# File 'lib/resources/gem.rb', line 38

def installed?
  info[:installed] == true
end

#to_sObject



46
47
48
# File 'lib/resources/gem.rb', line 46

def to_s
  "gem package #{@package_name}"
end

#versionObject



42
43
44
# File 'lib/resources/gem.rb', line 42

def version
  info[:version]
end