Class: Dependabot::Utils::Java::Version

Inherits:
Gem::Version
  • Object
show all
Defined in:
lib/dependabot/utils/java/version.rb

Constant Summary collapse

NULL_VALUES =
%w(0 final ga).freeze
PREFIXED_TOKEN_HIERARCHY =
{
  "." => { qualifier: 1, number: 4 },
  "-" => { qualifier: 2, number: 3 }
}.freeze
NAMED_QUALIFIERS_HIERARCHY =
{
  "a" => 1, "alpha"     => 1,
  "b" => 2, "beta"      => 2,
  "m" => 3, "milestone" => 3,
  "rc" => 4, "cr" => 4,
  "snapshot" => 5,
  "ga" => 6, "" => 6, "final" => 6,
  "sp" => 7
}.freeze
VERSION_PATTERN =
'[0-9a-zA-Z]+(?>\.[0-9a-zA-Z]*)*(-[0-9A-Za-z-]*(\.[0-9A-Za-z-]*)*)?'
ANCHORED_VERSION_PATTERN =
/\A\s*(#{VERSION_PATTERN})?\s*\z/.freeze

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(version) ⇒ Version

Returns a new instance of Version.



36
37
38
39
# File 'lib/dependabot/utils/java/version.rb', line 36

def initialize(version)
  @version_string = version.to_s
  super(version.to_s.tr("_", "-"))
end

Class Method Details

.correct?(version) ⇒ Boolean

Returns:

  • (Boolean)


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

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

  version.to_s.match?(ANCHORED_VERSION_PATTERN)
end

Instance Method Details

#prerelease?Boolean

Returns:

  • (Boolean)


45
46
47
48
49
50
51
# File 'lib/dependabot/utils/java/version.rb', line 45

def prerelease?
  tokens.any? do |token|
    next false unless NAMED_QUALIFIERS_HIERARCHY[token]

    NAMED_QUALIFIERS_HIERARCHY[token] < 6
  end
end

#to_sObject



41
42
43
# File 'lib/dependabot/utils/java/version.rb', line 41

def to_s
  @version_string
end