semver_dialects 3.4.2 → 3.4.4

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: 710e6a3a8fe698a7871ead1a3226d6a60d5edd17a0308933cd32107d79811605
4
- data.tar.gz: 46598d990561c189be8022b5edb3cffd96ba8d16ce83380da64f76fb35576295
3
+ metadata.gz: 155e773f43becb03ca24d66e5aef3db7c52a997e2ecbfe6e7d8c8405724fb8c8
4
+ data.tar.gz: 8bdd87a9dcfc0ba226c6e9730ad736613088ffd502ae77a17ca98cc9cd5a7e2d
5
5
  SHA512:
6
- metadata.gz: ba99632bcf1df6b5e16b66c2f83800594df1a296605bca5b04fb2854856f6ad76bda1c6b43f2e5589f3b10b47542bbf3b9b59c3bd8a44c9b64c009622117c945
7
- data.tar.gz: ee15977caaa5cd9ba22e752892795c9e2648b615c6deca5fc4b732b40ed655ad892a465d079dc6423cf4a7cc9715f4a648f2be1bf783b5670723437e66422a76
6
+ metadata.gz: d228adf7320bdfb6a418dfa8750305ab984c3abc2bbd992e2e027f942d16e983b2ba822d7504671be82ce0f5fe7ad8c51613233370965606b4b36b6d1d288971
7
+ data.tar.gz: cae052e840d2763415d9d725edc30f03437e71778aed69e3659b9e632ed9ba0b8826f9aab0fdf72a9f610778dbd648845a0a90ebbb6377180b2ad9e92d18c763
@@ -13,7 +13,7 @@ module SemverDialects
13
13
 
14
14
  attr_reader :tokens, :pre_release, :post_release, :revision
15
15
 
16
- def initialize(tokens, pre_release: [], post_release: [], revision: [])
16
+ def initialize(tokens, pre_release: [], post_release: [], revision: []) # rubocop:todo Lint/MissingSuper
17
17
  @tokens = tokens
18
18
  @pre_release = pre_release
19
19
  @post_release = post_release
@@ -51,7 +51,7 @@ module SemverDialects
51
51
 
52
52
  # Token can be either integer or string
53
53
  # Precedence: numeric token > string token > no token
54
- def compare_token_pair(a, b)
54
+ def compare_token_pair(a, b) # rubocop:todo Naming/MethodParameterName
55
55
  return 1 if !a.nil? && b.nil?
56
56
  return -1 if a.nil? && !b.nil?
57
57
 
@@ -64,7 +64,7 @@ module SemverDialects
64
64
 
65
65
  # Precedence: post-release > no release > pre-release
66
66
  # https://wiki.alpinelinux.org/wiki/APKBUILD_Reference#pkgver
67
- def compare_pre_release(a, b)
67
+ def compare_pre_release(a, b) # rubocop:todo Naming/MethodParameterName
68
68
  return 0 if a.empty? && b.empty?
69
69
  return -1 if !a.empty? && b.empty?
70
70
  return 1 if a.empty? && !b.empty?
@@ -74,7 +74,7 @@ module SemverDialects
74
74
 
75
75
  # Precedence: post-release > no release > pre-release
76
76
  # https://wiki.alpinelinux.org/wiki/APKBUILD_Reference#pkgver
77
- def compare_post_release(a, b)
77
+ def compare_post_release(a, b) # rubocop:todo Naming/MethodParameterName
78
78
  return 0 if a.empty? && b.empty?
79
79
  return 1 if !a.empty? && b.empty?
80
80
  return -1 if a.empty? && !b.empty?
@@ -86,7 +86,7 @@ module SemverDialects
86
86
  # Post-release precedence: cvs < svn < git < hg < p
87
87
  # Precedence for releases with number eg alpha1:
88
88
  # release without number < release with number
89
- def compare_suffix(a, b, order)
89
+ def compare_suffix(a, b, order) # rubocop:todo Naming/MethodParameterName
90
90
  a_suffix = order[a[0]]
91
91
  b_suffix = order[b[0]]
92
92
 
@@ -102,7 +102,7 @@ module SemverDialects
102
102
  (a_value || 0) <=> (b_value || 0)
103
103
  end
104
104
 
105
- def compare_revisions(a, b)
105
+ def compare_revisions(a, b) # rubocop:todo Naming/MethodParameterName
106
106
  return 0 if a.empty? && b.empty?
107
107
  return 1 if !a.empty? && b.empty?
108
108
  return -1 if a.empty? && !b.empty?
@@ -117,7 +117,7 @@ module SemverDialects
117
117
  end
118
118
  end
119
119
 
120
- class VersionParser
120
+ class VersionParser # rubocop:todo Style/Documentation
121
121
  DASH = /-/
122
122
  ALPHABETS = /([a-zA-Z]+)/
123
123
  DIGITS = /([0-9]+)/
@@ -217,6 +217,8 @@ module SemverDialects
217
217
  @post_release << s.to_i
218
218
  return
219
219
  end
220
+ else
221
+ raise SemverDialects::InvalidVersionError, input
220
222
  end
221
223
  end
222
224
  end
@@ -234,6 +236,8 @@ module SemverDialects
234
236
  when (s = scanner.scan(DIGITS))
235
237
  @revision << s.to_i
236
238
  return
239
+ else
240
+ raise SemverDialects::InvalidVersionError, input
237
241
  end
238
242
  end
239
243
  end
@@ -18,7 +18,7 @@
18
18
  # by implementing specific token classes.
19
19
  #
20
20
  module SemverDialects
21
- class BaseVersion
21
+ class BaseVersion # rubocop:todo Style/Documentation
22
22
  include Comparable
23
23
 
24
24
  attr_reader :tokens, :addition
@@ -36,14 +36,14 @@ module SemverDialects
36
36
 
37
37
  def <=>(other)
38
38
  cmp = compare_tokens(tokens, other.tokens)
39
- return cmp unless cmp == 0
39
+ return cmp unless cmp.zero?
40
40
 
41
41
  compare_additions(addition, other.addition)
42
42
  end
43
43
 
44
44
  # Returns true if the version tokens are equivalent to zero
45
45
  # and the addition is also equivalent to zero.
46
- def is_zero?
46
+ def is_zero? # rubocop:todo Naming/PredicateName
47
47
  return false if compare_tokens(tokens, [0]) != 0
48
48
 
49
49
  return true if addition.nil?
@@ -57,7 +57,7 @@ module SemverDialects
57
57
  max_idx = [a.size, b.size].max - 1
58
58
  (0..max_idx).each do |idx|
59
59
  cmp = compare_token_pair(a[idx], b[idx])
60
- return cmp unless cmp == 0
60
+ return cmp unless cmp.zero?
61
61
  end
62
62
  0
63
63
  end
@@ -4,7 +4,7 @@
4
4
  # It can either be above all versions (infinity),
5
5
  # below all versions (negative infinity), or any version.
6
6
  module SemverDialects
7
- class Boundary
7
+ class Boundary # rubocop:todo Style/Documentation
8
8
  include Comparable
9
9
 
10
10
  attr_accessor :semver
@@ -25,7 +25,7 @@ module SemverDialects
25
25
  semver <=> other.semver
26
26
  end
27
27
 
28
- def is_initial_version?
28
+ def is_initial_version? # rubocop:todo Naming/PredicateName
29
29
  @semver.is_zero?
30
30
  end
31
31
  end
@@ -34,13 +34,13 @@ module SemverDialects
34
34
  # When used as the lower boundary of an interval, any version
35
35
  # that is smaller than the upper boundary is in the interval.
36
36
  class BelowAll < Boundary
37
- def initialize; end
37
+ def initialize; end # rubocop:todo Lint/MissingSuper
38
38
 
39
39
  def to_s
40
40
  '-inf'
41
41
  end
42
42
 
43
- def is_initial_version?
43
+ def is_initial_version? # rubocop:todo Naming/PredicateName
44
44
  false
45
45
  end
46
46
 
@@ -55,13 +55,13 @@ module SemverDialects
55
55
  # When used as the upper boundary of an interval, any version
56
56
  # that is greater than the lower boundary is in the interval.
57
57
  class AboveAll < Boundary
58
- def initialize; end
58
+ def initialize; end # rubocop:todo Lint/MissingSuper
59
59
 
60
60
  def to_s
61
61
  '+inf'
62
62
  end
63
63
 
64
- def is_initial_version?
64
+ def is_initial_version? # rubocop:todo Naming/PredicateName
65
65
  false
66
66
  end
67
67
 
@@ -7,7 +7,7 @@ module SemverDialects
7
7
  module Commands
8
8
  # The check version command implementation
9
9
  class CheckVersion < SemverDialects::Command
10
- def initialize(type, version, constraint, options)
10
+ def initialize(type, version, constraint, options) # rubocop:todo Lint/MissingSuper
11
11
  @type = type
12
12
  @version = version
13
13
  @constraint = constraint
@@ -32,7 +32,7 @@ module SemverDialects
32
32
 
33
33
  # this look odd -- we have to use it here though, because it may be that placeholders are present inside
34
34
  # the version for which > and < would yield true
35
- return EmptyInterval.new if !(@start_cut <= other_interval.end_cut) || !(other_interval.start_cut <= @end_cut)
35
+ return EmptyInterval.new if @start_cut > other_interval.end_cut || other_interval.start_cut > @end_cut
36
36
 
37
37
  start_cut_new = max(@start_cut, other_interval.start_cut)
38
38
  end_cut_new = min(@end_cut, other_interval.end_cut)
@@ -123,7 +123,9 @@ module SemverDialects
123
123
  end
124
124
 
125
125
  def universal?
126
- (bit_set?(IntervalType::LEFT_OPEN) && bit_set?(IntervalType::RIGHT_OPEN) && @start_cut.instance_of?(BelowAll) && @end_cut.instance_of?(AboveAll)) || @start_cut.is_initial_version? && @end_cut.instance_of?(AboveAll)
126
+ (bit_set?(IntervalType::LEFT_OPEN) && bit_set?(IntervalType::RIGHT_OPEN) &&
127
+ @start_cut.instance_of?(BelowAll) && @end_cut.instance_of?(AboveAll)) ||
128
+ @start_cut.is_initial_version? && @end_cut.instance_of?(AboveAll)
127
129
  end
128
130
 
129
131
  def to_gem_s
@@ -181,7 +183,7 @@ module SemverDialects
181
183
  IntervalType::RIGHT_OPEN)
182
184
  end
183
185
 
184
- def compute_boundary(interval_a, interval_b, start_cut_new, end_cut_new, left_check, right_check)
186
+ def compute_boundary(interval_a, interval_b, start_cut_new, end_cut_new, left_check, right_check) # rubocop:disable Metrics/ParameterLists
185
187
  start_cut_a = interval_a.start_cut
186
188
  end_cut_a = interval_a.end_cut
187
189
  type_a = interval_a.type
@@ -211,7 +213,7 @@ module SemverDialects
211
213
  left_type | right_type
212
214
  end
213
215
 
214
- def get_canoncial_s(delimiter = ' ', eq = '=')
216
+ def get_canoncial_s(delimiter = ' ', eq = '=') # rubocop:todo Naming/MethodParameterName
215
217
  if distinct?
216
218
  "#{eq}#{@start_cut}"
217
219
  else
@@ -250,8 +252,8 @@ module SemverDialects
250
252
  end
251
253
  end
252
254
 
253
- class EmptyInterval < Interval
254
- def initialize; end
255
+ class EmptyInterval < Interval # rubocop:todo Style/Documentation
256
+ def initialize; end # rubocop:todo Lint/MissingSuper
255
257
 
256
258
  def to_s
257
259
  'empty'
@@ -15,9 +15,9 @@
15
15
  # that's been detected.
16
16
  #
17
17
  module SemverDialects
18
- module IntervalParser
19
- # A constraint is made of an operator followed by a version string.
20
- # Use the regular expression of the SemanticVersion because this is the most generic one.
18
+ module IntervalParser # rubocop:todo Style/Documentation
19
+ # Version string validation is only validated not to be white space.
20
+ # All other version validation is delegated to the version parsers.
21
21
  CONSTRAINT_REGEXP = Regexp.new('(?<op>[><=]+)\s*(?<version>[^\s]+)').freeze
22
22
 
23
23
  def self.parse(typ, versionstring)
@@ -4,7 +4,7 @@
4
4
  # It can express a range like "[1.0,2.0],[3.0,4.0]" (Maven syntax),
5
5
  # that is between 1.0 and 2.0 (included) OR between 3.0 and 4.0 (included).
6
6
  module SemverDialects
7
- class IntervalSet
7
+ class IntervalSet # rubocop:todo Style/Documentation
8
8
  attr_reader :intervals
9
9
 
10
10
  def initialize
@@ -3,7 +3,7 @@
3
3
  # IntervalSetParser parses a string that represents an interval set
4
4
  # in a syntax that's specific to a package type.
5
5
  module SemverDialects
6
- module IntervalSetParser
6
+ module IntervalSetParser # rubocop:todo Style/Documentation
7
7
  # parse parses a string and returns an IntervalSet.
8
8
  # The string is expected to be in a syntax that's specific the given package type.
9
9
  def self.parse(typ, interval_set_string)
@@ -11,7 +11,7 @@ module SemverDialects
11
11
  SNAPSHOT = -1
12
12
  SP = 'sp'
13
13
 
14
- class Version < BaseVersion
14
+ class Version < BaseVersion # rubocop:todo Style/Documentation
15
15
  attr_accessor :addition
16
16
 
17
17
  # Return an array similar to the one Maven generates when parsing versions.
@@ -26,7 +26,7 @@ module SemverDialects
26
26
  tokens.clone.append(addition.to_a)
27
27
  end
28
28
 
29
- def to_s(as_addition = false)
29
+ def to_s(as_addition = false) # rubocop:disable Style/OptionalBooleanParameter
30
30
  s = ''
31
31
  if tokens.any?
32
32
  s += '-' if as_addition
@@ -63,7 +63,7 @@ module SemverDialects
63
63
  # Special qualifier "sp" is right after GA and before any lexical or numeric token.
64
64
  # Strings should be converted to lower case before being compared by this method.
65
65
  # 1-a0 == 1-alpha < 1-0 == 1 == 1final == 1 ga < 1sp < 1-a < 1-1
66
- def compare_token_pair(a = 0, b = 0)
66
+ def compare_token_pair(a = 0, b = 0) # rubocop:todo Naming/MethodParameterName
67
67
  a ||= 0
68
68
  b ||= 0
69
69
 
@@ -89,7 +89,7 @@ module SemverDialects
89
89
  end
90
90
  end
91
91
 
92
- class VersionParser
92
+ class VersionParser # rubocop:todo Style/Documentation
93
93
  def self.parse(input)
94
94
  new(input).parse
95
95
  end
@@ -105,6 +105,9 @@ module SemverDialects
105
105
  @version = Version.new([])
106
106
  @result = @version
107
107
  parse_version(false)
108
+
109
+ raise InvalidVersionError, input if @result.to_a.empty?
110
+
108
111
  result
109
112
  end
110
113
 
@@ -4,11 +4,11 @@ require 'strscan'
4
4
 
5
5
  module SemverDialects
6
6
  module Rpm
7
- module TokenPairComparison
7
+ module TokenPairComparison # rubocop:todo Style/Documentation
8
8
  # Token can be either alphabets, integers or tilde.
9
9
  # Caret is currently not supported. More details here https://gitlab.com/gitlab-org/gitlab/-/issues/428941#note_1882343489
10
10
  # Precedence: numeric token > string token > no token > tilda (~)
11
- def compare_token_pair(a, b)
11
+ def compare_token_pair(a, b) # rubocop:todo Naming/MethodParameterName
12
12
  return 1 if a != '~' && b == '~'
13
13
  return -1 if a == '~' && b != '~'
14
14
 
@@ -24,7 +24,8 @@ module SemverDialects
24
24
  end
25
25
 
26
26
  # This implementation references `go-rpm-version` https://github.com/knqyf263/go-rpm-version
27
- # Which is based on the official `rpmvercmp` https://github.com/rpm-software-management/rpm/blob/master/rpmio/rpmvercmp.c implementation
27
+ # Which is based on the official `rpmvercmp`
28
+ # https://github.com/rpm-software-management/rpm/blob/master/rpmio/rpmvercmp.c implementation
28
29
  # rpm versioning schema can be found here https://github.com/rpm-software-management/rpm/blob/master/docs/manual/dependencies.md#versioning
29
30
  # Details on how the caret and tilde symbols are handled can be found here https://docs.fedoraproject.org/en-US/packaging-guidelines/Versioning/#_handling_non_sorting_versions_with_tilde_dot_and_caret
30
31
  class Version < BaseVersion
@@ -32,7 +33,7 @@ module SemverDialects
32
33
 
33
34
  attr_reader :tokens, :addition, :epoch
34
35
 
35
- def initialize(tokens, epoch: nil, release_tag: nil)
36
+ def initialize(tokens, epoch: nil, release_tag: nil) # rubocop:todo Lint/MissingSuper
36
37
  @tokens = tokens
37
38
  @addition = release_tag
38
39
  @epoch = epoch
@@ -67,20 +68,20 @@ module SemverDialects
67
68
 
68
69
  private
69
70
 
70
- def compare_epochs(a, b)
71
+ def compare_epochs(a, b) # rubocop:todo Naming/MethodParameterName
71
72
  (a || 0) <=> (b || 0)
72
73
  end
73
74
  end
74
75
 
75
- class ReleaseTag < BaseVersion
76
+ class ReleaseTag < BaseVersion # rubocop:todo Style/Documentation
76
77
  include TokenPairComparison
77
78
 
78
- def initialize(tokens)
79
+ def initialize(tokens) # rubocop:todo Lint/MissingSuper
79
80
  @tokens = tokens
80
81
  end
81
82
  end
82
83
 
83
- class VersionParser
84
+ class VersionParser # rubocop:todo Style/Documentation
84
85
  DASH = /-/
85
86
  ALPHABET = /([a-zA-Z]+)/
86
87
  TILDE = /~/
@@ -57,7 +57,7 @@ module SemverDialects
57
57
  prefix_delimiter -= 1
58
58
  end
59
59
 
60
- unless prefix_delimiter < 0
60
+ unless prefix_delimiter.negative?
61
61
  @prefix_segments = split_array[0..prefix_delimiter].map do |group_string|
62
62
  SemanticVersionSegment.new(group_string)
63
63
  end
@@ -96,7 +96,7 @@ module SemverDialects
96
96
  [first_array_prefix.concat(first_array_suffix), second_array_prefix.concat(second_array_suffix)]
97
97
  end
98
98
 
99
- def is_zero?
99
+ def is_zero? # rubocop:todo Naming/PredicateName
100
100
  @prefix_segments.empty? || @prefix_segments.all?(&:is_zero?)
101
101
  end
102
102
 
@@ -143,12 +143,12 @@ module SemverDialects
143
143
  end
144
144
  end
145
145
 
146
- class SemanticVersionSegment
146
+ class SemanticVersionSegment # rubocop:todo Style/Documentation
147
147
  include Comparable
148
148
 
149
149
  attr_accessor :normalized_group_string, :original_group_string, :is_post_release, :is_pre_release
150
150
 
151
- @@group_suffixes = {
151
+ @@group_suffixes = { # rubocop:todo Style/ClassVars
152
152
  # pre-releases
153
153
  'PRE' => -16,
154
154
  'PREVIEW' => -16,
@@ -180,8 +180,8 @@ module SemverDialects
180
180
 
181
181
  if @@group_suffixes.key?(group_string_ucase)
182
182
  value = @@group_suffixes[group_string_ucase]
183
- @is_post_release = value > 0
184
- @is_pre_release = value < 0
183
+ @is_post_release = value.positive?
184
+ @is_pre_release = value.negative?
185
185
  @normalized_group_string = @@group_suffixes[group_string_ucase].to_s
186
186
  else
187
187
  @normalized_group_string = group_string_ucase
@@ -224,12 +224,12 @@ module SemverDialects
224
224
  normalized_group_string == 'X'
225
225
  end
226
226
 
227
- def is_number?
227
+ def is_number? # rubocop:todo Naming/PredicateName
228
228
  normalized_group_string.number?
229
229
  end
230
230
 
231
- def is_zero?
232
- is_number? ? normalized_group_string.to_i == 0 : false
231
+ def is_zero? # rubocop:todo Naming/PredicateName
232
+ is_number? ? normalized_group_string.to_i.zero? : false
233
233
  end
234
234
  end
235
235
  end
@@ -7,8 +7,8 @@ module SemverDialects
7
7
  # Represents a token that matches any major, minor, or patch number.
8
8
  ANY_NUMBER = 'x'
9
9
 
10
- class Version < BaseVersion
11
- def initialize(tokens, prerelease_tag: nil)
10
+ class Version < BaseVersion # rubocop:todo Style/Documentation
11
+ def initialize(tokens, prerelease_tag: nil) # rubocop:todo Lint/MissingSuper
12
12
  @tokens = tokens
13
13
  @addition = prerelease_tag
14
14
  end
@@ -41,14 +41,14 @@ module SemverDialects
41
41
  end
42
42
  end
43
43
 
44
- class PrereleaseTag < BaseVersion
45
- def initialize(tokens)
44
+ class PrereleaseTag < BaseVersion # rubocop:todo Style/Documentation
45
+ def initialize(tokens) # rubocop:todo Lint/MissingSuper
46
46
  @tokens = tokens
47
47
  end
48
48
 
49
49
  # Returns true if the prerelease tag is empty.
50
50
  # In Semver 2 1.2.3-0 is NOT equivalent to 1.2.3.
51
- def is_zero?
51
+ def is_zero? # rubocop:todo Naming/PredicateName
52
52
  tokens.empty?
53
53
  end
54
54
 
@@ -63,7 +63,8 @@ module SemverDialects
63
63
  # Numeric identifiers always have lower precedence than non-numeric identifiers.
64
64
  return -1
65
65
  when nil
66
- # A larger set of pre-release fields has a higher precedence than a smaller set, if all of the preceding identifiers are equal.
66
+ # A larger set of pre-release fields has a higher precedence than a smaller set,
67
+ # if all of the preceding identifiers are equal.
67
68
  return 1
68
69
  end
69
70
  when String
@@ -72,16 +73,19 @@ module SemverDialects
72
73
  # Numeric identifiers always have lower precedence than non-numeric identifiers.
73
74
  return 1
74
75
  when nil
75
- # A larger set of pre-release fields has a higher precedence than a smaller set, if all of the preceding identifiers are equal.
76
+ # A larger set of pre-release fields has a higher precedence than a smaller set,
77
+ # if all of the preceding identifiers are equal.
76
78
  return 1
77
79
  end
78
80
  when nil
79
81
  case b
80
82
  when Integer
81
- # A larger set of pre-release fields has a higher precedence than a smaller set, if all of the preceding identifiers are equal.
83
+ # A larger set of pre-release fields has a higher precedence than a smaller set,
84
+ # if all of the preceding identifiers are equal.
82
85
  return -1
83
86
  when String
84
- # A larger set of pre-release fields has a higher precedence than a smaller set, if all of the preceding identifiers are equal.
87
+ # A larger set of pre-release fields has a higher precedence than a smaller set,
88
+ # if all of the preceding identifiers are equal.
85
89
  return -1
86
90
  end
87
91
  end
@@ -91,7 +95,7 @@ module SemverDialects
91
95
  end
92
96
  end
93
97
 
94
- class VersionParser
98
+ class VersionParser # rubocop:todo Style/Documentation
95
99
  def self.parse(input)
96
100
  new(input).parse
97
101
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SemverDialects
4
- VERSION = '3.4.2'
4
+ VERSION = '3.4.4'
5
5
  end
@@ -14,23 +14,25 @@ require 'semver_dialects/interval_set'
14
14
  require 'semver_dialects/interval_set_parser'
15
15
  require 'deb_version'
16
16
 
17
- module SemverDialects
17
+ module SemverDialects # rubocop:todo Style/Documentation
18
18
  # Captures all errors that could be possibly raised
19
19
  class Error < StandardError
20
20
  end
21
21
 
22
- class UnsupportedPackageTypeError < Error
23
- def initialize(pkgType)
24
- @pkgType = pkgType
22
+ class UnsupportedPackageTypeError < Error # rubocop:todo Style/Documentation
23
+ def initialize(pkg_type)
24
+ super
25
+ @pkg_type = pkg_type
25
26
  end
26
27
 
27
28
  def message
28
- "unsupported package type '#{@pkgType}'"
29
+ "unsupported package type '#{@pkg_type}'"
29
30
  end
30
31
  end
31
32
 
32
- class UnsupportedVersionError < Error
33
+ class UnsupportedVersionError < Error # rubocop:todo Style/Documentation
33
34
  def initialize(raw_version)
35
+ super
34
36
  @raw_version = raw_version
35
37
  end
36
38
 
@@ -39,8 +41,9 @@ module SemverDialects
39
41
  end
40
42
  end
41
43
 
42
- class InvalidVersionError < Error
44
+ class InvalidVersionError < Error # rubocop:todo Style/Documentation
43
45
  def initialize(raw_version)
46
+ super
44
47
  @raw_version = raw_version
45
48
  end
46
49
 
@@ -49,8 +52,9 @@ module SemverDialects
49
52
  end
50
53
  end
51
54
 
52
- class InvalidConstraintError < Error
55
+ class InvalidConstraintError < Error # rubocop:todo Style/Documentation
53
56
  def initialize(raw_constraint)
57
+ super
54
58
  @raw_constraint = raw_constraint
55
59
  end
56
60
 
@@ -59,10 +63,11 @@ module SemverDialects
59
63
  end
60
64
  end
61
65
 
62
- class IncompleteScanError < InvalidVersionError
66
+ class IncompleteScanError < InvalidVersionError # rubocop:todo Style/Documentation
63
67
  attr_reader :rest
64
68
 
65
69
  def initialize(rest)
70
+ super
66
71
  @rest = rest
67
72
  end
68
73
 
@@ -128,7 +133,9 @@ module SemverDialects
128
133
  #
129
134
  # quoting https://go.dev/ref/mod#pseudo-versions
130
135
  #
131
- # Each pseudo-version may be in one of three forms, depending on the base version. These forms ensure that a pseudo-version compares higher than its base version, but lower than the next tagged version.
136
+ # Each pseudo-version may be in one of three forms, depending on the base version.
137
+ # These forms ensure that a pseudo-version compares higher than its base version,
138
+ # but lower than the next tagged version.
132
139
  #
133
140
 
134
141
  # vX.0.0-yyyymmddhhmmss-abcdefabcdef is used when there is no known
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.4.2
4
+ version: 3.4.4
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-08-01 00:00:00.000000000 Z
13
+ date: 2024-10-30 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: pastel
@@ -68,6 +68,20 @@ dependencies:
68
68
  - - "~>"
69
69
  - !ruby/object:Gem::Version
70
70
  version: 0.10.1
71
+ - !ruby/object:Gem::Dependency
72
+ name: unparser
73
+ requirement: !ruby/object:Gem::Requirement
74
+ requirements:
75
+ - - "~>"
76
+ - !ruby/object:Gem::Version
77
+ version: 0.6.13
78
+ type: :development
79
+ prerelease: false
80
+ version_requirements: !ruby/object:Gem::Requirement
81
+ requirements:
82
+ - - "~>"
83
+ - !ruby/object:Gem::Version
84
+ version: 0.6.13
71
85
  - !ruby/object:Gem::Dependency
72
86
  name: benchmark-ips
73
87
  requirement: !ruby/object:Gem::Requirement
@@ -209,7 +223,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
209
223
  requirements:
210
224
  - - ">="
211
225
  - !ruby/object:Gem::Version
212
- version: '0'
226
+ version: '3.0'
213
227
  required_rubygems_version: !ruby/object:Gem::Requirement
214
228
  requirements:
215
229
  - - ">="