class Dependabot::Requirement
def self.requirements_array(requirement_string); end
def self.requirements_array(requirement_string); end
def bump_major_segment(version)
def bump_major_segment(version) Dependabot::Version.new("#{version.segments[0].to_i + 1}.0.0") end
def bump_minor_segment(version)
def bump_minor_segment(version) Dependabot::Version.new("#{version.segments[0]}.#{version.segments[1].to_i + 1}.0") end
def bump_version(version)
def bump_version(version) Dependabot::Version.new(version.bump) end
def constraints
def constraints requirements.map { |op, version| "#{op} #{version}" } end
def handle_greater_than_for_min(version)
def handle_greater_than_for_min(version) version end
def handle_greater_than_or_equal_for_min(version)
def handle_greater_than_or_equal_for_min(version) version end
def handle_less_than_max(version)
def handle_less_than_max(version) version end
def handle_less_than_or_equal_for_max(version)
def handle_less_than_or_equal_for_max(version) version end
def handle_max_operator(operator, version)
def handle_max_operator(operator, version) case operator when "<=" then handle_less_than_or_equal_for_max(version) when "<" then handle_less_than_max(version) when "~>" then handle_tilde_pessimistic_max(version) end end
def handle_min_operator(operator, version)
def handle_min_operator(operator, version) case operator when ">=" then handle_greater_than_or_equal_for_min(version) when ">" then handle_greater_than_for_min(version) when "~>" then handle_tilde_pessimistic_for_min(version) end end
def handle_tilde_pessimistic_for_min(version)
def handle_tilde_pessimistic_for_min(version) version end
def handle_tilde_pessimistic_max(version)
def handle_tilde_pessimistic_max(version) case version.segments.length when 1 bump_major_segment(version) when 2 bump_minor_segment(version) else bump_version(version) end end
def max_version
def max_version # Select constraints with maximum operators max_constraints = requirements.select { |op, _| MAXIMUM_OPERATORS.include?(op) } # Process each maximum constraint using the respective handler effective_max_versions = max_constraints.filter_map do |op, version| handle_max_operator(op, version.is_a?(Dependabot::Version) ? version : Dependabot::Version.new(version)) end # Return the minimum among the effective maximum constraints Dependabot::Version.new(effective_max_versions.min) if effective_max_versions.any? end
def min_version
def min_version # Select constraints with minimum operators min_constraints = requirements.select { |op, _| MINIMUM_OPERATORS.include?(op) } # Process each minimum constraint using the respective handler effective_min_versions = min_constraints.filter_map do |op, version| handle_min_operator(op, version.is_a?(Dependabot::Version) ? version : Dependabot::Version.new(version)) end # Return the maximum among the effective minimum constraints Dependabot::Version.new(effective_min_versions.max) if effective_min_versions.any? end