Class: Dependabot::Pub::Version

Inherits:
Version
  • Object
show all
Extended by:
T::Sig
Defined in:
lib/dependabot/pub/version.rb

Constant Summary collapse

VERSION_PATTERN =
T.let(Gem::Version::VERSION_PATTERN + "(\\+[0-9a-zA-Z\\-.]+)?", String)
ANCHORED_VERSION_PATTERN =
/\A\s*(#{VERSION_PATTERN})?\s*\z/

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(version) ⇒ Version

Returns a new instance of Version.



29
30
31
32
33
34
# File 'lib/dependabot/pub/version.rb', line 29

def initialize(version)
  @version_string = T.let(version.to_s, String)
  version, @build_info = version.to_s.split("+") if version.to_s.include?("+")

  super(T.must(version))
end

Instance Attribute Details

#build_infoObject (readonly)

Returns the value of attribute build_info.



26
27
28
# File 'lib/dependabot/pub/version.rb', line 26

def build_info
  @build_info
end

Class Method Details

.correct?(version) ⇒ Boolean

Returns:

  • (Boolean)


52
53
54
55
56
# File 'lib/dependabot/pub/version.rb', line 52

def self.correct?(version)
  return false if version.nil?

  version.to_s.match?(ANCHORED_VERSION_PATTERN)
end

.new(version) ⇒ Object



37
38
39
# File 'lib/dependabot/pub/version.rb', line 37

def self.new(version)
  T.cast(super, Dependabot::Pub::Version)
end

Instance Method Details

#inspectObject

:nodoc:



47
48
49
# File 'lib/dependabot/pub/version.rb', line 47

def inspect # :nodoc:
  "#<#{self.class} #{@version_string}>"
end

#to_sObject



42
43
44
# File 'lib/dependabot/pub/version.rb', line 42

def to_s
  @version_string
end