Class: Factorix::Dependency::MODVersionRequirement
- Inherits:
-
Data
- Object
- Data
- Factorix::Dependency::MODVersionRequirement
- Defined in:
- lib/factorix/dependency/mod_version_requirement.rb,
lib/factorix/dependency/mod_version_requirement.rb
Overview
Represents a MOD version requirement with an operator and version
This class is used in MOD dependencies to specify version constraints. It supports the following comparison operators: <, <=, =, >=, >
Instance Attribute Summary collapse
-
#operator ⇒ String
readonly
Comparison operator (<, <=, =, >=, >).
-
#version ⇒ MODVersion
readonly
Version to compare against.
Instance Method Summary collapse
-
#initialize(operator:, version:) ⇒ MODVersionRequirement
constructor
Create a new MODVersionRequirement.
-
#satisfied_by?(mod_version) ⇒ Boolean
Check if a given version satisfies this requirement.
-
#to_s ⇒ String
String representation of the requirement.
Constructor Details
#initialize(operator:, version:) ⇒ MODVersionRequirement
Create a new MODVersionRequirement
34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/factorix/dependency/mod_version_requirement.rb', line 34 def initialize(operator:, version:) unless VALID_OPERATORS.include?(operator) raise ArgumentError, "Invalid operator: #{operator}. Must be one of: #{VALID_OPERATORS.join(", ")}" end unless version.is_a?(MODVersion) raise ArgumentError, "version must be a MODVersion, got #{version.class}" end super end |
Instance Attribute Details
#operator ⇒ String (readonly)
Returns Comparison operator (<, <=, =, >=, >).
6 7 8 |
# File 'lib/factorix/dependency/mod_version_requirement.rb', line 6 def operator @operator end |
#version ⇒ MODVersion (readonly)
Returns Version to compare against.
6 7 8 |
# File 'lib/factorix/dependency/mod_version_requirement.rb', line 6 def version @version end |
Instance Method Details
#satisfied_by?(mod_version) ⇒ Boolean
Check if a given version satisfies this requirement
50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
# File 'lib/factorix/dependency/mod_version_requirement.rb', line 50 def satisfied_by?(mod_version) case operator when "=" mod_version == version when ">=" mod_version >= version when ">" mod_version > version when "<=" mod_version <= version when "<" mod_version < version else raise ArgumentError, "Unexpected operator: #{operator}" end end |
#to_s ⇒ String
String representation of the requirement
70 |
# File 'lib/factorix/dependency/mod_version_requirement.rb', line 70 def to_s = "#{operator} #{version}" |