Module: SemverDialects::VersionChecker

Defined in:
lib/semver_dialects.rb

Overview

A utiltity module that helps with version matching

Class Method Summary collapse

Class Method Details

.version_sat?(typ, raw_ver, raw_constraint) ⇒ Boolean

Returns:

  • (Boolean)

Raises:



41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/semver_dialects.rb', line 41

def self.version_sat?(typ, raw_ver, raw_constraint)
  version_constraint = version_translate(typ, raw_constraint)
  raise SemverDialects::Error, 'malformed constraint' if version_constraint.nil? || version_constraint.empty?

  version = VersionParser.parse('=' + raw_ver)
  raise SemverDialects::Error, 'malformed constraint' if version.nil? || version.empty?

  constraint = VersionRange.new
  version_constraint.each do |version_interval_str|
    constraint << VersionParser.parse(version_interval_str)
  end

  constraint.overlaps_with?(version)
end

.version_translate(typ, version_string) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/semver_dialects.rb', line 18

def self.version_translate(typ, version_string)
  case typ
  when 'maven'
    VersionTranslator.translate_maven(version_string)
  when 'npm'
    VersionTranslator.translate_npm(version_string)
  when 'conan'
    VersionTranslator.translate_conan(version_string)
  when 'nuget'
    VersionTranslator.translate_nuget(version_string)
  when 'go'
    VersionTranslator.translate_go(version_string)
  when 'gem'
    VersionTranslator.translate_gem(version_string)
  when 'pypi'
    VersionTranslator.translate_pypi(version_string)
  when 'packagist'
    VersionTranslator.translate_packagist(version_string)
  else
    raise SemverDialects::Error, "unsupported package type '#{typ}'"
  end
end