class Dependencies::Helpers::AptCachePolicy

Constants

INSTALLED_VERSION_REGEX

Attributes

name[R]

Public Class Methods

new(name) click to toggle source
# File lib/dependencies/helpers/apt_cache_policy.rb, line 10
def initialize(name)
        @name = name
end

Public Instance Methods

installed?() click to toggle source
# File lib/dependencies/helpers/apt_cache_policy.rb, line 18
def installed?
        !!installed_version
end
installed_version() click to toggle source
# File lib/dependencies/helpers/apt_cache_policy.rb, line 14
def installed_version
        version_from_policy_version_line(installed_version_line)
end

Private Instance Methods

apt_cache_lines() click to toggle source
# File lib/dependencies/helpers/apt_cache_policy.rb, line 38
def apt_cache_lines
        @apt_cache_lines ||= `apt-cache policy #{name}`.split("\n")
end
installed_version_line() click to toggle source
# File lib/dependencies/helpers/apt_cache_policy.rb, line 24
def installed_version_line
        apt_cache_lines.find { |line| line.match(/#{INSTALLED_VERSION_REGEX}/) }
end
version_from_policy_version_line(line) click to toggle source
# File lib/dependencies/helpers/apt_cache_policy.rb, line 28
def version_from_policy_version_line(line)
        return nil if line.nil?

        # E.g.:
        #  Installed: 7.52.1-5+deb9u7
        match = line.match(/#{INSTALLED_VERSION_REGEX}/)

        match.nil? ? nil : match[1]
end