semver_dialects 1.3.0 → 1.5.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ddcbb054210cd867508c853d05b58c492e24f5019eb53498d2bbce338d4b5312
4
- data.tar.gz: 6461b277cd0ddb886b96f23c9a57ab2a20cf4ebaa3fb11f49af54cf59a943ddf
3
+ metadata.gz: 28ee5ec66f887446314abeffcac8cff51161d7b2040eb06139efc5bbf48b2cc3
4
+ data.tar.gz: c8328e39e774b98b3e4b0b1eb5c2da35952fbdcf98a1ae76d0f8b4d01749c358
5
5
  SHA512:
6
- metadata.gz: b44765a7c9500082e3298b2ee34d1d9020b642ca5467c617944c42f57c7e76c0b3c8f34d3cac3058262edb14fb5cc885040e7277016c446277c02e12626e9fed
7
- data.tar.gz: 6a7fa2d8043611fe4ff0a44abd5a1f67765f99a356c83be8343f6b1cb367127feb51cfd879021c623062477b2b538051405129280aa4079f46fdaf2bdf282d3c
6
+ metadata.gz: 17d70269cfc9c4174cd7e9807b8dc79834e9864c5e09ea5d655c006edb9319ef9c3e234e340b4368be7dc4671c254b4e1bfae2874c55420add7f023f7e0e719d
7
+ data.tar.gz: df0798ecfef4d791201da8348df7262d610346a94f56da96f6624b305b1221c27cef175ed97a96462a6dba50fa703610335ab68f4685c43114f1fff3b7620be1
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SemverDialects
4
- VERSION = '1.3.0'
4
+ VERSION = '1.5.0'
5
5
  end
@@ -4,6 +4,7 @@ require 'semver_dialects/version'
4
4
  require 'semver_dialects/semantic_version/version_translator'
5
5
  require 'semver_dialects/semantic_version/version_parser'
6
6
  require 'semver_dialects/semantic_version/version_range'
7
+ require 'deb_version'
7
8
 
8
9
  module SemverDialects
9
10
  # Captures all errors that could be possibly raised
@@ -39,6 +40,9 @@ module SemverDialects
39
40
  end
40
41
 
41
42
  def self.version_sat?(typ, raw_ver, raw_constraint)
43
+ # os package versions are handled very differently from application package versions
44
+ return os_pkg_version_sat?(typ, raw_ver, raw_constraint) if os_purl_type?(typ)
45
+
42
46
  version_constraint = version_translate(typ, raw_constraint)
43
47
  raise SemverDialects::Error, 'malformed constraint' if version_constraint.nil? || version_constraint.empty?
44
48
 
@@ -52,5 +56,22 @@ module SemverDialects
52
56
 
53
57
  constraint.overlaps_with?(version)
54
58
  end
59
+
60
+ def self.os_purl_type?(typ)
61
+ ['deb', 'rpm', 'apk'].include?(typ)
62
+ end
63
+
64
+ def self.os_pkg_version_sat?(typ, raw_ver, raw_constraint)
65
+ if typ == 'deb'
66
+ # we only support the less than operator, because that's the only one currently output
67
+ # by the advisory exporter for operating system packages.
68
+ raise SemverDialects::Error, 'malformed constraint' unless raw_constraint[0] == '<'
69
+
70
+ v1 = DebVersion.new(raw_ver)
71
+ v2 = DebVersion.new(raw_constraint[1..-1])
72
+
73
+ return v1 < v2
74
+ end
75
+ end
55
76
  end
56
77
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: semver_dialects
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 1.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Julian Thome
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: exe
12
12
  cert_chain: []
13
- date: 2023-05-23 00:00:00.000000000 Z
13
+ date: 2023-11-06 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: pastel
@@ -32,14 +32,14 @@ dependencies:
32
32
  requirements:
33
33
  - - "~>"
34
34
  - !ruby/object:Gem::Version
35
- version: 1.2.0
35
+ version: '1.3'
36
36
  type: :runtime
37
37
  prerelease: false
38
38
  version_requirements: !ruby/object:Gem::Requirement
39
39
  requirements:
40
40
  - - "~>"
41
41
  - !ruby/object:Gem::Version
42
- version: 1.2.0
42
+ version: '1.3'
43
43
  - !ruby/object:Gem::Dependency
44
44
  name: tty-command
45
45
  requirement: !ruby/object:Gem::Requirement
@@ -54,6 +54,20 @@ dependencies:
54
54
  - - "~>"
55
55
  - !ruby/object:Gem::Version
56
56
  version: 0.10.1
57
+ - !ruby/object:Gem::Dependency
58
+ name: deb_version
59
+ requirement: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - "~>"
62
+ - !ruby/object:Gem::Version
63
+ version: 1.0.1
64
+ type: :runtime
65
+ prerelease: false
66
+ version_requirements: !ruby/object:Gem::Requirement
67
+ requirements:
68
+ - - "~>"
69
+ - !ruby/object:Gem::Version
70
+ version: 1.0.1
57
71
  - !ruby/object:Gem::Dependency
58
72
  name: bundler
59
73
  requirement: !ruby/object:Gem::Requirement
@@ -155,7 +169,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
155
169
  - !ruby/object:Gem::Version
156
170
  version: '0'
157
171
  requirements: []
158
- rubygems_version: 3.3.7
172
+ rubygems_version: 3.4.10
159
173
  signing_key:
160
174
  specification_version: 4
161
175
  summary: This gem provides utility function to process semantic versions expressed