Class: Ukiryu::VersionCompatibility
- Inherits:
-
Object
- Object
- Ukiryu::VersionCompatibility
- Defined in:
- lib/ukiryu/models/version_compatibility.rb
Overview
Version compatibility model
Checks if an installed tool version is compatible with the version requirements specified in a tool profile.
Defined Under Namespace
Classes: RequirementParser
Instance Attribute Summary collapse
-
#compatible ⇒ Object
readonly
Returns the value of attribute compatible.
-
#installed_version ⇒ Object
readonly
Returns the value of attribute installed_version.
-
#reason ⇒ Object
readonly
Returns the value of attribute reason.
-
#required_version ⇒ Object
readonly
Returns the value of attribute required_version.
Class Method Summary collapse
-
.check(installed_version, requirement) ⇒ VersionCompatibility
Check compatibility against a version requirement.
Instance Method Summary collapse
-
#compatible? ⇒ Boolean
Check if versions are compatible.
-
#incompatible? ⇒ Boolean
Check if versions are incompatible.
-
#initialize(installed_version:, required_version:, compatible:, reason: nil) ⇒ VersionCompatibility
constructor
Initialize version compatibility check.
-
#status_message ⇒ String
Get a human-readable status message.
Constructor Details
#initialize(installed_version:, required_version:, compatible:, reason: nil) ⇒ VersionCompatibility
Initialize version compatibility check
17 18 19 20 21 22 |
# File 'lib/ukiryu/models/version_compatibility.rb', line 17 def initialize(installed_version:, required_version:, compatible:, reason: nil) @installed_version = installed_version @required_version = required_version @compatible = compatible @reason = reason end |
Instance Attribute Details
#compatible ⇒ Object (readonly)
Returns the value of attribute compatible.
9 10 11 |
# File 'lib/ukiryu/models/version_compatibility.rb', line 9 def compatible @compatible end |
#installed_version ⇒ Object (readonly)
Returns the value of attribute installed_version.
9 10 11 |
# File 'lib/ukiryu/models/version_compatibility.rb', line 9 def installed_version @installed_version end |
#reason ⇒ Object (readonly)
Returns the value of attribute reason.
9 10 11 |
# File 'lib/ukiryu/models/version_compatibility.rb', line 9 def reason @reason end |
#required_version ⇒ Object (readonly)
Returns the value of attribute required_version.
9 10 11 |
# File 'lib/ukiryu/models/version_compatibility.rb', line 9 def required_version @required_version end |
Class Method Details
.check(installed_version, requirement) ⇒ VersionCompatibility
Check compatibility against a version requirement
54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
# File 'lib/ukiryu/models/version_compatibility.rb', line 54 def self.check(installed_version, requirement) if !requirement || requirement.empty? return new(installed_version: installed_version, required_version: requirement, compatible: true, reason: nil) end parser = RequirementParser.new(requirement) compatible = parser.satisfied_by?(installed_version) if compatible new(installed_version: installed_version, required_version: requirement, compatible: true, reason: nil) else new(installed_version: installed_version, required_version: requirement, compatible: false, reason: "Version #{installed_version} does not satisfy requirement: #{requirement}") end end |
Instance Method Details
#compatible? ⇒ Boolean
Check if versions are compatible
27 28 29 |
# File 'lib/ukiryu/models/version_compatibility.rb', line 27 def compatible? @compatible end |
#incompatible? ⇒ Boolean
Check if versions are incompatible
34 35 36 |
# File 'lib/ukiryu/models/version_compatibility.rb', line 34 def incompatible? !@compatible end |
#status_message ⇒ String
Get a human-readable status message
41 42 43 44 45 46 47 |
# File 'lib/ukiryu/models/version_compatibility.rb', line 41 def if @compatible "Version #{@installed_version} is compatible with requirement #{@required_version}" else @reason || "Version #{@installed_version} is not compatible with requirement #{@required_version}" end end |