semver_dialects 1.3.0 → 1.4.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: 477a8f6b9d50ce0b31df72e328f683e585e4eb191ea02e44a42101dba4e7be4a
4
+ data.tar.gz: c636be1d60cab7452ccda9963898eee992d969e3a8b490656fb8b8def27c3642
5
5
  SHA512:
6
- metadata.gz: b44765a7c9500082e3298b2ee34d1d9020b642ca5467c617944c42f57c7e76c0b3c8f34d3cac3058262edb14fb5cc885040e7277016c446277c02e12626e9fed
7
- data.tar.gz: 6a7fa2d8043611fe4ff0a44abd5a1f67765f99a356c83be8343f6b1cb367127feb51cfd879021c623062477b2b538051405129280aa4079f46fdaf2bdf282d3c
6
+ metadata.gz: 134eb5c82a142e260bd946954383050966579cb40983e7ca6094c9d66001565eea5cb1250deeb84811b7a3556a5bde6c3eb53ca48815dda6a361649ade1fc537
7
+ data.tar.gz: 6039fc1f6d4163c7813e7f4155c93a8d5f2aa4ce43cfe62fb75784d524532a2662e8c8831d43c2e88592539955385981f60b52dfa5577657ce68580dd6720167
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SemverDialects
4
- VERSION = '1.3.0'
4
+ VERSION = '1.4.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.4.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-10-24 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: pastel
@@ -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