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 +4 -4
- data/lib/semver_dialects/version.rb +1 -1
- data/lib/semver_dialects.rb +21 -0
- metadata +17 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 477a8f6b9d50ce0b31df72e328f683e585e4eb191ea02e44a42101dba4e7be4a
|
4
|
+
data.tar.gz: c636be1d60cab7452ccda9963898eee992d969e3a8b490656fb8b8def27c3642
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 134eb5c82a142e260bd946954383050966579cb40983e7ca6094c9d66001565eea5cb1250deeb84811b7a3556a5bde6c3eb53ca48815dda6a361649ade1fc537
|
7
|
+
data.tar.gz: 6039fc1f6d4163c7813e7f4155c93a8d5f2aa4ce43cfe62fb75784d524532a2662e8c8831d43c2e88592539955385981f60b52dfa5577657ce68580dd6720167
|
data/lib/semver_dialects.rb
CHANGED
@@ -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.
|
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-
|
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.
|
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
|