semver_dialects 1.3.0 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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