Class: Dependabot::Swift::Requirement
- Inherits:
-
Requirement
- Object
- Requirement
- Dependabot::Swift::Requirement
- Extended by:
- T::Sig
- Defined in:
- lib/dependabot/swift/requirement.rb
Constant Summary collapse
- PATTERN =
T.let(/\A\s*(#{quoted})?\s*(#{version_pattern})\s*\z/, Regexp)
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(*requirements) ⇒ Requirement
constructor
A new instance of Requirement.
Constructor Details
#initialize(*requirements) ⇒ Requirement
Returns a new instance of Requirement.
60 61 62 63 64 65 66 |
# File 'lib/dependabot/swift/requirement.rb', line 60 def initialize(*requirements) requirements = requirements.flatten.flat_map do |req_string| req_string.split(",").map(&:strip) end super(requirements) end |
Class Method Details
.parse(obj) ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/dependabot/swift/requirement.rb', line 29 def self.parse(obj) # Preserve a Swift::Version; convert other stable Gem::Versions so the boundary stays orderable. return ["=", obj] if obj.is_a?(Swift::Version) if obj.is_a?(Gem::Version) # Reject prerelease Gem::Versions: #to_s is lossily canonicalized (e.g. "1.0.0-alpha" -> "1.0.0.pre.alpha"). raise BadRequirementError, "Illformed requirement [#{obj.inspect}]" if obj.prerelease? return ["=", Swift::Version.new(obj.to_s)] end unless (matches = PATTERN.match(obj.to_s)) raise BadRequirementError, "Illformed requirement [#{obj.inspect}]" end return DefaultRequirement if matches[1] == ">=" && matches[2] == "0" [matches[1] || "=", Swift::Version.new(T.must(matches[2]))] end |
.requirements_array(requirement_string) ⇒ Object
53 54 55 |
# File 'lib/dependabot/swift/requirement.rb', line 53 def self.requirements_array(requirement_string) [new(T.must(requirement_string))] end |