Method: Inspec::Resources::GemPackage#info

Defined in:
lib/resources/gem.rb

#infoObject



38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/resources/gem.rb', line 38

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

  cmd = inspec.command("#{@gem_binary} list --local -a -q \^#{@package_name}\$")
  return {} unless cmd.exit_status.zero?

  # extract package name and version
  # parses data like winrm (1.3.4, 1.3.3)
  params = /^\s*([^\(]*?)\s*\((.*?)\)\s*$/.match(cmd.stdout.chomp)
  @info = {
    installed: !params.nil?,
    type: 'gem',
  }
  return @info unless @info[:installed]

  versions = params[2].split(',')
  @info[:name] = params[1]
  @info[:version] = versions[0]
  @info
end