semver_dialects 1.5.1 → 1.6.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: c1cb3a87022079c747bcd293b3cd933d77895a57d588d8f8ce2c810c64c6887d
4
- data.tar.gz: effb283d7ac372fe8d5f4ca591502587093e46351f14865d2aba2bec9c76bc19
3
+ metadata.gz: a9f7ab5a9d1b88ad15cf148cfae14a5e12a7d3cdf1da6c5cbf8e187db6219773
4
+ data.tar.gz: 05117ab6b6707ac8cf139386209534d88e93d427bbd71b0fe490251d39798005
5
5
  SHA512:
6
- metadata.gz: 93c31bfb3463782eaf8a2a18c1f37f47a6b5e8963fc4f1be7079a82171182562f6055546a54b6415120d13fec5810b1892be269bfc98ef90efc56bbc17bdd768
7
- data.tar.gz: 235385f7356dbc06085b370de6998606771aedcfff40b88ec79578bf1e1ef931cf568d1ab66abb49350075960b129c6a5515d7bb3970d6f4715b3db23dee0fcf
6
+ metadata.gz: 76367b1feace146fc6c62b0ab6f552e825d35a9a4d2a39d037a5297d9eb3dcd2f43da03ca741137bde510bcfb853c0a500a733801933bf74aaa05bf8f5b925d7
7
+ data.tar.gz: b31d6e57f9809b91974072f443d59507038f4deefce53103d89891382925e06fa6f0c7a2bb34c9e4c203bc98bc061162dfeb5ccb282c2a2543bd3bf3249f20ea
@@ -2,22 +2,19 @@ require_relative "version_cut"
2
2
  require_relative "version_interval"
3
3
 
4
4
  module VersionParser
5
- VERSION_SPECIFIER_REGEX = /(?<op>[><=]+) *(?<version>[a-zA-Z0-9\-_\.\*]+)/
6
-
7
- def self.parse(version_constraint)
8
- return self.all_versions if version_constraint == "=*"
9
-
10
- interval = self.all_versions
11
-
12
- version_constraint.split(" ").each do |version_specifier|
13
- matches = VERSION_SPECIFIER_REGEX.match(version_specifier)
14
-
15
- if matches.nil? || matches.size == 0
16
- raise SemverDialects::Error, "could not parse version specifier \"#{version_specifier}\" from version constraint \"#{version_constraint}\""
17
- end
5
+ def self.parse(versionstring)
6
+ if (versionstring == "=*")
7
+ # special case = All Versions
8
+ return VersionInterval.new(IntervalType::LEFT_OPEN | IntervalType::RIGHT_OPEN, BelowAll.new(), AboveAll.new())
9
+ end
18
10
 
19
- op, version_string = matches[:op], matches[:version]
20
- case op
11
+ version_items = versionstring.split(" ")
12
+ interval = VersionInterval.new(IntervalType::LEFT_OPEN | IntervalType::RIGHT_OPEN, BelowAll.new(), AboveAll.new())
13
+ version_items.each do
14
+ |version_item|
15
+ matches = version_item.match /(?<op>[><=]+) *(?<version>[a-zA-Z0-9\-_\.\*]+)/
16
+ version_string = matches[:version]
17
+ case matches[:op]
21
18
  when ">="
22
19
  new_interval = VersionInterval.new(IntervalType::LEFT_CLOSED | IntervalType::RIGHT_OPEN, VersionCut.new(version_string), AboveAll.new())
23
20
  interval = interval.intersect(new_interval)
@@ -35,13 +32,6 @@ module VersionParser
35
32
  interval = interval.intersect(new_interval)
36
33
  end
37
34
  end
38
-
39
35
  interval
40
36
  end
41
-
42
- private
43
-
44
- def self.all_versions
45
- VersionInterval.new(IntervalType::LEFT_OPEN | IntervalType::RIGHT_OPEN, BelowAll.new(), AboveAll.new())
46
- end
47
37
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SemverDialects
4
- VERSION = '1.5.1'
4
+ VERSION = '1.6.0'
5
5
  end
data/lib/utils.rb CHANGED
@@ -14,9 +14,7 @@ class String
14
14
  end
15
15
 
16
16
  def number?
17
- true if Integer(self)
18
- rescue StandardError
19
- false
17
+ !!Integer(self, exception: false)
20
18
  end
21
19
 
22
20
  def initial
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.5.1
4
+ version: 1.6.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: 2024-01-11 00:00:00.000000000 Z
13
+ date: 2024-01-23 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: pastel
@@ -169,7 +169,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
169
169
  - !ruby/object:Gem::Version
170
170
  version: '0'
171
171
  requirements: []
172
- rubygems_version: 3.4.10
172
+ rubygems_version: 3.4.19
173
173
  signing_key:
174
174
  specification_version: 4
175
175
  summary: This gem provides utility function to process semantic versions expressed