semver_check 0.1.1 → 0.1.2

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: 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: