Class: Zypper::Upgraderepo::OsRelease
- Inherits:
-
Object
- Object
- Zypper::Upgraderepo::OsRelease
- Defined in:
- lib/zypper/upgraderepo/os_release.rb
Overview
Detect the current and next release.
Constant Summary collapse
- UNSTABLE_VERSION =
"16.0"- OS_RELEASE_FILE =
"/etc/os-release"- SUSE_RELEASE_FILE =
"/etc/SuSE-release"
Instance Attribute Summary collapse
-
#custom ⇒ Object
readonly
Returns the value of attribute custom.
-
#unstable ⇒ Object
readonly
Returns the value of attribute unstable.
Instance Method Summary collapse
- #current ⇒ Object
- #current?(version) ⇒ Boolean
- #first? ⇒ Boolean
- #fullname ⇒ Object
-
#initialize(options) ⇒ OsRelease
constructor
A new instance of OsRelease.
- #last ⇒ Object
- #last? ⇒ Boolean
- #newer ⇒ Object
- #next ⇒ Object
- #previous ⇒ Object
- #seniority ⇒ Object
- #valid?(version) ⇒ Boolean
Constructor Details
#initialize(options) ⇒ OsRelease
Returns a new instance of OsRelease.
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/zypper/upgraderepo/os_release.rb', line 19 def initialize() @os_versions = ["13.1", "13.2", "42.1", "42.2", "42.3", "15.0", "15.1", "15.2", "15.3", "15.4", "15.5", "15.6", "16.0"] if .allow_unstable raise NoUnstableVersionAvailable if UNSTABLE_VERSION.empty? @os_versions << UNSTABLE_VERSION @unstable = true end fname = if File.exist? self.class::OS_RELEASE_FILE self.class::OS_RELEASE_FILE elsif File.exist? self.class::SUSE_RELEASE_FILE self.class::SUSE_RELEASE_FILE else raise ReleaseFileNotFound end @release = IniParse.parse(File.read(fname)) @current_idx = @os_versions.index(@release["__anonymous__"]["VERSION"].delete('"')) return unless .version raise InvalidVersion, .version unless @os_versions.include?(.version) @custom = .version end |
Instance Attribute Details
#custom ⇒ Object (readonly)
Returns the value of attribute custom.
11 12 13 |
# File 'lib/zypper/upgraderepo/os_release.rb', line 11 def custom @custom end |
#unstable ⇒ Object (readonly)
Returns the value of attribute unstable.
11 12 13 |
# File 'lib/zypper/upgraderepo/os_release.rb', line 11 def unstable @unstable end |
Instance Method Details
#current ⇒ Object
48 49 50 |
# File 'lib/zypper/upgraderepo/os_release.rb', line 48 def current @os_versions[@current_idx] end |
#current?(version) ⇒ Boolean
96 97 98 |
# File 'lib/zypper/upgraderepo/os_release.rb', line 96 def current?(version) @os_versions.index(version) == @current_idx end |
#first? ⇒ Boolean
88 89 90 |
# File 'lib/zypper/upgraderepo/os_release.rb', line 88 def first? @current_idx.zero? end |
#fullname ⇒ Object
68 69 70 |
# File 'lib/zypper/upgraderepo/os_release.rb', line 68 def fullname @release["__anonymous__"]["PRETTY_NAME"].gsub('"', "") end |
#last ⇒ Object
52 53 54 |
# File 'lib/zypper/upgraderepo/os_release.rb', line 52 def last @os_versions[-1] end |
#last? ⇒ Boolean
84 85 86 |
# File 'lib/zypper/upgraderepo/os_release.rb', line 84 def last? @current_idx == (@os_versions.count - 1) end |
#newer ⇒ Object
76 77 78 79 80 81 82 |
# File 'lib/zypper/upgraderepo/os_release.rb', line 76 def newer if seniority.positive? @os_versions[@current_idx.next..-1] else [] end end |
#next ⇒ Object
56 57 58 59 60 |
# File 'lib/zypper/upgraderepo/os_release.rb', line 56 def next return if last? @os_versions[@current_idx.next] end |
#previous ⇒ Object
62 63 64 65 66 |
# File 'lib/zypper/upgraderepo/os_release.rb', line 62 def previous return if first? @os_versions[@current_idx.pred] end |
#seniority ⇒ Object
72 73 74 |
# File 'lib/zypper/upgraderepo/os_release.rb', line 72 def seniority @os_versions.count - @current_idx.next end |
#valid?(version) ⇒ Boolean
92 93 94 |
# File 'lib/zypper/upgraderepo/os_release.rb', line 92 def valid?(version) @os_versions.include? version end |