class Facts::Freebsd::Os::Release

Constants

ALIASES
FACT_NAME

Public Instance Methods

call_the_resolver() click to toggle source
# File lib/facter/facts/freebsd/os/release.rb, line 10
def call_the_resolver
  installed_userland = Facter::Resolvers::Freebsd::FreebsdVersion.resolve(:installed_userland)

  return Facter::ResolvedFact.new(FACT_NAME, nil) if !installed_userland || installed_userland.empty?

  value = build_release_hash_from_version(installed_userland)

  [Facter::ResolvedFact.new(FACT_NAME, value),
   Facter::ResolvedFact.new(ALIASES.first, value[:major], :legacy),
   Facter::ResolvedFact.new(ALIASES.last, installed_userland, :legacy)]
end

Private Instance Methods

build_release_hash_from_version(version_string) click to toggle source
# File lib/facter/facts/freebsd/os/release.rb, line 24
def build_release_hash_from_version(version_string)
  version, branch_value = version_string.split('-', 2)
  major_value, minor_value = version.split('.')
  patchlevel_value = branch_value.split('-p')[1]

  value = {
    full: version_string,
    major: major_value,
    branch: branch_value
  }

  value[:minor] = minor_value if minor_value
  value[:patchlevel] = patchlevel_value if patchlevel_value

  value
end