semver_dialects 3.6.0 → 4.1.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: fe0a320a210aa3cf18ef447c32c3d2d461bba51c185df2dbd842b6ce5ce7815a
4
- data.tar.gz: 38f73e2943f151051181bc4a60e2df97dfcf341f6fad9404a25b344dd9d4b08a
3
+ metadata.gz: d4a27c10d04d0d7d87eefebf96585b412fdc2e7b5c33109664866f2ba4f6cde2
4
+ data.tar.gz: 66854474a6b04b3a4d6f70ceef19d5c85f66ac5eef94e1a5b7638148d36e2bc8
5
5
  SHA512:
6
- metadata.gz: 35ca22a972575add479fec3ef5442f5fea5d652e896285183da75738207d7a65e2bf84abe66a2f6af27e1578b6272b6dc5ceb6f91bd731b45a49abb8031f23f4
7
- data.tar.gz: 7e481a673228c2c843cf61f2d179ebe3a52e3b37a99f5da83ad5f95edcb6a56ec758fe2b96d9aeff1d209375626c335af6c5135bfa44daddf571ea185fb2c72a
6
+ metadata.gz: eaa314c70a1cf264da49d505af7f9e6b672a624838aa3dd0fbc6459b3533ea7ba849d208d30ceab5fcd3db2b2d2996e18eaee5a459ab0824ae558f25dde786b6
7
+ data.tar.gz: dcfb26edbf736464f3442ff9d4aeba3e835b84b5503f2d79c0d4563918615d47a673a9055d1d9f359bf1d929f16fbe891d6d491b1aae6463cc6cf78bdf69f5e3
@@ -22,7 +22,7 @@ module SemverDialects
22
22
  parsed_version = SemverDialects.parse_version(@type, version)
23
23
  sorted_versions << parsed_version
24
24
  rescue SemverDialects::InvalidVersionError, SemverDialects::UnsupportedVersionError => e
25
- invalid_versions << { version: version, error: e.message }
25
+ invalid_versions << { version:, error: e.message }
26
26
  end
27
27
 
28
28
  sorted_versions.sort!
@@ -164,6 +164,10 @@ module SemverDialects
164
164
  get_canoncial_s
165
165
  end
166
166
 
167
+ def to_pub_s
168
+ get_canoncial_s
169
+ end
170
+
167
171
  def empty?
168
172
  instance_of?(EmptyInterval)
169
173
  end
@@ -73,6 +73,10 @@ module SemverDialects
73
73
  to_npm_s
74
74
  end
75
75
 
76
+ def to_pub_s
77
+ to_npm_s
78
+ end
79
+
76
80
  def to_version_s(package_type)
77
81
  case package_type
78
82
  when 'npm'
@@ -36,6 +36,8 @@ module SemverDialects
36
36
  translate_cargo(interval_set_string)
37
37
  when 'swift'
38
38
  translate_swift(interval_set_string)
39
+ when 'pub'
40
+ translate_pub(interval_set_string)
39
41
  else
40
42
  raise UnsupportedPackageTypeError, typ
41
43
  end
@@ -87,6 +89,10 @@ module SemverDialects
87
89
  translate_npm(interval_set_string)
88
90
  end
89
91
 
92
+ def self.translate_pub(interval_set_string)
93
+ translate_npm(interval_set_string)
94
+ end
95
+
90
96
  def self.add_missing_operator(interval_set_string)
91
97
  starts_with_operator?(interval_set_string) ? interval_set_string : "=#{interval_set_string}"
92
98
  end
@@ -118,7 +118,7 @@ module SemverDialects
118
118
 
119
119
  raise IncompleteScanError, scanner.rest if scanner.rest?
120
120
 
121
- Version.new(tokens, epoch: epoch, release_tag: release_tag)
121
+ Version.new(tokens, epoch:, release_tag:)
122
122
  end
123
123
 
124
124
  private
@@ -130,7 +130,7 @@ module SemverDialects
130
130
  end
131
131
  end
132
132
 
133
- Version.new(tokens, prerelease_tag: prerelease_tag)
133
+ Version.new(tokens, prerelease_tag:)
134
134
  end
135
135
 
136
136
  private
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SemverDialects
4
- VERSION = '3.6.0'
4
+ VERSION = '4.1.0'
5
5
  end
@@ -121,6 +121,8 @@ module SemverDialects # rubocop:todo Style/Documentation
121
121
 
122
122
  # Parse a version according to the syntax type.
123
123
  def self.parse_version(typ, raw_ver)
124
+ raise InvalidVersionError, raw_ver if raw_ver.nil? || (raw_ver.respond_to?(:empty?) && raw_ver.empty?)
125
+
124
126
  # for efficiency most popular package types come first
125
127
  case typ
126
128
  when 'maven'
@@ -225,6 +227,10 @@ module SemverDialects # rubocop:todo Style/Documentation
225
227
  # swift follows Semver 2.0.0.
226
228
  Semver2::VersionParser.parse(raw_ver)
227
229
 
230
+ when 'pub'
231
+ # pub follows Semver 2.0.0.
232
+ Semver2::VersionParser.parse(raw_ver)
233
+
228
234
  when 'apk'
229
235
  Apk::VersionParser.parse(raw_ver)
230
236
  when 'deb'
@@ -234,8 +240,7 @@ module SemverDialects # rubocop:todo Style/Documentation
234
240
  else
235
241
  raise UnsupportedPackageTypeError, typ
236
242
  end
237
- rescue ArgumentError
238
- # Gem::Version.new raises an ArgumentError for invalid versions.
243
+ rescue ArgumentError, TypeError, NoMethodError
239
244
  raise InvalidVersionError, raw_ver
240
245
  end
241
246
 
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: 3.6.0
4
+ version: 4.1.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: 2025-02-07 00:00:00.000000000 Z
13
+ date: 2026-05-27 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: pastel
@@ -224,7 +224,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
224
224
  requirements:
225
225
  - - ">="
226
226
  - !ruby/object:Gem::Version
227
- version: '3.0'
227
+ version: '3.2'
228
228
  required_rubygems_version: !ruby/object:Gem::Requirement
229
229
  requirements:
230
230
  - - ">="