Class: Dependabot::Swift::NativeRequirement
- Inherits:
-
Object
- Object
- Dependabot::Swift::NativeRequirement
- Extended by:
- T::Sig
- Defined in:
- lib/dependabot/swift/native_requirement.rb
Constant Summary collapse
- REGEXP =
TODO: Support pinning to specific revisions
T.let( /(from.*|\.upToNextMajor.*|\.upToNextMinor.*|"[^"]*"\s*\.\.[\.<]\s*"[^"]*".*|exact.*|\.exact.*)/, Regexp )
Instance Attribute Summary collapse
-
#declaration ⇒ Object
readonly
Returns the value of attribute declaration.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(declaration) ⇒ NativeRequirement
constructor
A new instance of NativeRequirement.
- #to_s ⇒ Object
- #update(version) ⇒ Object
- #update_if_needed(version) ⇒ Object
Constructor Details
#initialize(declaration) ⇒ NativeRequirement
Returns a new instance of NativeRequirement.
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
# File 'lib/dependabot/swift/native_requirement.rb', line 51 def initialize(declaration) @declaration = declaration min, max = parse_declaration(declaration) constraint = if min == max ["= #{min}"] elsif closed_range? [">= #{min}", "<= #{max}"] else [">= #{min}", "< #{max}"] end @min = T.let(min, String) @max = T.let(max, String) @requirement = T.let(Requirement.new(constraint), Requirement) end |
Instance Attribute Details
#declaration ⇒ Object (readonly)
Returns the value of attribute declaration.
20 21 22 |
# File 'lib/dependabot/swift/native_requirement.rb', line 20 def declaration @declaration end |
Class Method Details
.map_requirements(requirements, &_blk) ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/dependabot/swift/native_requirement.rb', line 30 def self.map_requirements(requirements, &_blk) requirements.map do |requirement| = requirement[:metadata] next requirement unless .is_a?(Hash) requirement_string = [:requirement_string] next requirement unless requirement_string.is_a?(String) declaration = new(requirement_string) new_declaration = yield(declaration) new_requirement = new(new_declaration) requirement.merge( requirement: new_requirement.to_s, metadata: { requirement_string: new_declaration } ) end end |
Instance Method Details
#to_s ⇒ Object
70 71 72 |
# File 'lib/dependabot/swift/native_requirement.rb', line 70 def to_s requirement.to_s end |
#update(version) ⇒ Object
82 83 84 85 86 87 88 89 90 |
# File 'lib/dependabot/swift/native_requirement.rb', line 82 def update(version) if single_version_declaration? declaration.sub(min, version.to_s) elsif closed_range? declaration.sub(max, version.to_s) elsif range? declaration.sub(max, bump_major(version.to_s)) end end |
#update_if_needed(version) ⇒ Object
75 76 77 78 79 |
# File 'lib/dependabot/swift/native_requirement.rb', line 75 def update_if_needed(version) return declaration if requirement.satisfied_by?(version) update(version) end |