semver_check 0.1.0 → 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: 4217ffcec4eca63ed8280bb221b7cf0fa8ab1dc545b85f4d51799aa3f4bdf997
4
- data.tar.gz: ccfc6d8d567321e919f4c629cfaddd7935b8dda165020046bf643bf2ddf274de
3
+ metadata.gz: a788698d2408013afa250c7bb1b15d6db802abecb51d4809c4a71952c90da500
4
+ data.tar.gz: a46a370c61e3470815ceeb7ddefc1f8049c17b83feaec5829fdd4aa6fb3e2cd8
5
5
  SHA512:
6
- metadata.gz: a0f7f029ea74293af76697b6b5e37a7897636de5059a792657f6e1963817cf7829f1d4ab2d306aa5d29f9e43aaca144e968d6407f2e407c46ef20fff010a98ba
7
- data.tar.gz: 0c67e78f29bca2d694b0e662ad262178730d013af78c65e6bce4e4f1f7e52ae37a4b3c1cd1b332ab064f460d099e20b85b766dd8abb9d6f381cd4eb011083d80
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.0"
4
+ VERSION = "0.1.2"
5
5
  end
data/lib/semver_check.rb CHANGED
@@ -22,20 +22,14 @@ 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
25
  MAPPING_TABLE = [
32
- %w[n[nso]{2} n],
33
- %w[sn[nso]{1} n],
34
- %w[ssn n],
35
- %w[o[nso]{2} o],
36
- %w[so[nso]{1} o],
37
- %w[sso o],
38
- %w[sss s]
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]
39
33
  ].freeze
40
34
 
41
35
  ORDER = %i[major minor patch prerelease].freeze
@@ -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[1] if comparison.match?(/\A#{m[0]}\Z/)
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.0
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: