Class: Inspec::Resources::Package
- Inherits:
- 
      Object
      
        - Object
- Inspec::Resources::Package
 
- Defined in:
- lib/resources/package.rb
Instance Method Summary collapse
- 
  
    
      #held?(_provider = nil, _version = nil)  ⇒ Boolean 
    
    
  
  
  
  
  
  
  
  
  
    returns true it the package is held (if the OS supports it). 
- 
  
    
      #info  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    returns the package description. 
- 
  
    
      #initialize(package_name, opts = {})  ⇒ Package 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    rubocop:disable Metrics/AbcSize. 
- 
  
    
      #installed?(_provider = nil, _version = nil)  ⇒ Boolean 
    
    
  
  
  
  
  
  
  
  
  
    returns true if the package is installed. 
- #to_s ⇒ Object
- 
  
    
      #version  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    return the package version. 
Constructor Details
#initialize(package_name, opts = {}) ⇒ Package
rubocop:disable Metrics/AbcSize
| 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | # File 'lib/resources/package.rb', line 23 def initialize(package_name, opts = {}) # rubocop:disable Metrics/AbcSize @package_name = package_name @name = @package_name @cache = nil # select package manager @pkgman = nil os = inspec.os if os.debian? @pkgman = Deb.new(inspec) elsif os.redhat? || %w{suse amazon fedora}.include?(os[:family]) @pkgman = Rpm.new(inspec, opts) elsif ['arch'].include?(os[:name]) @pkgman = Pacman.new(inspec) elsif ['darwin'].include?(os[:family]) @pkgman = Brew.new(inspec) elsif os.windows? @pkgman = WindowsPkg.new(inspec) elsif ['aix'].include?(os[:family]) @pkgman = BffPkg.new(inspec) elsif os.solaris? @pkgman = SolarisPkg.new(inspec) elsif ['hpux'].include?(os[:family]) @pkgman = HpuxPkg.new(inspec) else raise Inspec::Exceptions::ResourceSkipped, 'The `package` resource is not supported on your OS yet.' end evaluate_missing_requirements end | 
Instance Method Details
#held?(_provider = nil, _version = nil) ⇒ Boolean
returns true it the package is held (if the OS supports it)
| 60 61 62 | # File 'lib/resources/package.rb', line 60 def held?(_provider = nil, _version = nil) info[:held] == true end | 
#info ⇒ Object
returns the package description
| 65 66 67 68 69 70 71 72 | # File 'lib/resources/package.rb', line 65 def info return @cache if !@cache.nil? # All `@pkgman.info` methods return `{}`. This matches that # behavior if `@pkgman` can't be determined, thus avoiding the # `undefined method 'info' for nil:NilClass` error return {} if @pkgman.nil? @pkgman.info(@package_name) end | 
#installed?(_provider = nil, _version = nil) ⇒ Boolean
returns true if the package is installed
| 55 56 57 | # File 'lib/resources/package.rb', line 55 def installed?(_provider = nil, _version = nil) info[:installed] == true end | 
#to_s ⇒ Object
| 80 81 82 | # File 'lib/resources/package.rb', line 80 def to_s "System Package #{@package_name}" end | 
#version ⇒ Object
return the package version
| 75 76 77 78 | # File 'lib/resources/package.rb', line 75 def version info = @pkgman.info(@package_name) info[:version] end |