Class: Dependabot::Bazel::Requirement

Inherits:
Requirement
  • Object
show all
Extended by:
T::Sig
Defined in:
lib/dependabot/bazel/requirement.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(*requirements) ⇒ Requirement

Returns a new instance of Requirement.



41
42
43
44
45
46
47
# File 'lib/dependabot/bazel/requirement.rb', line 41

def initialize(*requirements)
  requirements = requirements.flatten.flat_map do |req_string|
    T.must(req_string).split(",").map(&:strip)
  end

  super(requirements)
end

Class Method Details

.normalize_requirement(requirement_string) ⇒ Object



14
15
16
17
18
19
20
# File 'lib/dependabot/bazel/requirement.rb', line 14

def self.normalize_requirement(requirement_string)
  return requirement_string if requirement_string.match?(/^[<>=~]/)

  return "= #{requirement_string}" if requirement_string.match?(/^\d+(\.\d+)*(-[\w\d.]+)?(\+[\w\d.]+)?$/)

  requirement_string
end

.requirements_array(requirement_string) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/dependabot/bazel/requirement.rb', line 27

def self.requirements_array(requirement_string)
  return [] if requirement_string.nil? || requirement_string.strip.empty?

  # Handle comma-separated constraints (e.g., ">= 1.0, < 2.0")
  constraints = requirement_string.split(",").map do |req_string|
    normalize_requirement(req_string.strip)
  end.reject(&:empty?)

  return [] if constraints.empty?

  [new(constraints)]
end

Instance Method Details

#satisfied_by?(version) ⇒ Boolean

Returns:

  • (Boolean)


50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/dependabot/bazel/requirement.rb', line 50

def satisfied_by?(version)
  bazel_version = case version
                  when Dependabot::Bazel::Version
                    version
                  else
                    Dependabot::Bazel::Version.new(version.to_s)
                  end

  super(bazel_version)
rescue ArgumentError
  false
end