Class: Dependabot::Bundler::Requirement

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

Constant Summary collapse

GEM_DEP_SPLIT =
T.let(/\A(?<name>[a-zA-Z0-9_\-]+):(?<version>.+)\z/, Regexp)

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(*requirements) ⇒ Requirement

Returns a new instance of Requirement.



65
66
67
68
69
70
71
# File 'lib/dependabot/bundler/requirement.rb', line 65

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

.parse_dep_string(dep_string) ⇒ Object



30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'lib/dependabot/bundler/requirement.rb', line 30

def self.parse_dep_string(dep_string)
  stripped = dep_string.strip
  return nil if stripped.empty?

  match = stripped.match(GEM_DEP_SPLIT)
  return nil unless match

  name = T.must(match[:name])
  constraint = T.must(match[:version]).strip

  return nil if constraint.empty?

  version = extract_version(constraint)

  {
    name: name,
    normalised_name: name,
    version: version,
    requirement: constraint,
    extras: nil
  }
end

.requirements_array(requirement_string) ⇒ Object



25
26
27
# File 'lib/dependabot/bundler/requirement.rb', line 25

def self.requirements_array(requirement_string)
  [new(requirement_string)]
end

.satisfied_by?(req, version) ⇒ Boolean

Returns:

  • (Boolean)


17
18
19
# File 'lib/dependabot/bundler/requirement.rb', line 17

def self.satisfied_by?(req, version)
  new(req[:requirement]).satisfied_by?(version)
end