semver_check 0.1.1 → 0.1.2

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: db31bcb9b2466e8ee280a5525e9ee0d65d45e9a2a2188e794ffcec1ee83c7906
4
- data.tar.gz: b4f54d4f208a8c7359d16a7ffb4913bf265c8d02d9e4a3f702a0aa1725358c19
3
+ metadata.gz: a788698d2408013afa250c7bb1b15d6db802abecb51d4809c4a71952c90da500
4
+ data.tar.gz: a46a370c61e3470815ceeb7ddefc1f8049c17b83feaec5829fdd4aa6fb3e2cd8
5
5
  SHA512:
6
- metadata.gz: 15157f1fcb03eac2f3d38bab2b024548169c577fa6aa6828c2e5265a8d572e6619ce9db1c9b39f96de4be7120791e4026ff68d3c0b05c6a255f28be7ece70b14
7
- data.tar.gz: 298908ebb2740fdcfed0e1c8a2ffcbe5e730e4947b6b46a4ad09aaa38b00429e64ee999e19b1d3528b1841b66970c261221c4693d19d2186520a951120212888
6
+ metadata.gz: 4cfb9ba6a08f638cf26338ed6e1e499d655d155d278c51b13edba1a6eb4c2520cf2aff422e67f5220676dd650c5da4a6de71320cbb39b38ffc4a845c6d5fe561
7
+ data.tar.gz: c48338806955d42f6ed67d32bebb5a924aa567d9fbb82682a176e66350341e6982c9c12f844f1aaa327836e35ecc6021c43b65062ad2ff664af5fc2740e0db4c
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SemverCheck
4
- VERSION = "0.1.1"
4
+ VERSION = "0.1.2"
5
5
  end
data/lib/semver_check.rb CHANGED
@@ -22,21 +22,15 @@ module SemverCheck
22
22
  )
23
23
  \Z/x
24
24
 
25
- INT_RESULT = {
26
- n: 1,
27
- o: -1,
28
- s: 0
29
- }.freeze
30
-
31
- MAPPING_TABLE = [
32
- %w[n n],
33
- %w[sn n],
34
- %w[ssn n],
35
- %w[o o],
36
- %w[so o],
37
- %w[sso o],
38
- %w[sss s]
39
- ]
25
+ MAPPING_TABLE = [
26
+ %w[n 1],
27
+ %w[sn 1],
28
+ %w[ssn 1],
29
+ %w[o -1],
30
+ %w[so -1],
31
+ %w[sso -1],
32
+ %w[sss 0]
33
+ ].freeze
40
34
 
41
35
  ORDER = %i[major minor patch prerelease].freeze
42
36
 
@@ -72,7 +66,7 @@ module SemverCheck
72
66
  "o"
73
67
  end
74
68
  end.join
75
- prerelease_sort(other, comparison)
69
+ buildmetadata_sort(other, prerelease_sort(other, comparison))
76
70
  end
77
71
 
78
72
  def prerelease_sort(other, comparison)
@@ -93,14 +87,26 @@ module SemverCheck
93
87
  end
94
88
  end
95
89
 
96
- def match(comparison)
97
- result = MAPPING_TABLE.map do |m|
98
- m.last if comparison.start_with? m.first
99
- end.compact
100
-
101
- raise "Too many results" if result.length > 1
90
+ def buildmetadata_sort(other, comparison)
91
+ v_build = @version[:buildmetadata]
92
+ o_build = other.version[:buildmetadata]
93
+ if comparison.zero?
94
+ if v_build.nil? && !o_build.nil?
95
+ 1
96
+ elsif !v_build.nil? && o_build.nil?
97
+ -1
98
+ else
99
+ 0
100
+ end
101
+ else
102
+ comparison
103
+ end
104
+ end
102
105
 
103
- INT_RESULT[result.first.to_sym]
106
+ def match(comparison)
107
+ MAPPING_TABLE.find do |m|
108
+ comparison.start_with?(m.first)
109
+ end.last.to_i
104
110
  end
105
111
 
106
112
  def prepare_version(version)
@@ -109,7 +115,7 @@ module SemverCheck
109
115
 
110
116
  version = version.named_captures.transform_keys(&:to_sym)
111
117
  # convert major, minor and patch to int
112
- ORDER.take(3).each { |part| version[part] = version[part].to_i }
118
+ ORDER.first(3).each { |part| version[part] = version[part].to_i }
113
119
  version
114
120
  end
115
121
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: semver_check
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - PuLLi
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-12-25 00:00:00.000000000 Z
11
+ date: 2022-12-26 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Fun project to compare two SemVer strings with a bit of regex magic.
14
14
  email: