semantic_range 3.0.0 → 3.1.1

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: 67ae11bb60e5aa3341d7d83eae4e7f100262878f2ef6612391b4e18ce3ee5801
4
- data.tar.gz: d25d1b605ddf68eed7979808d0ce1bebbaac5e7025e47ac9d81564dbabb21ca6
3
+ metadata.gz: afc42bf5019e2b33b286e83b45d664bc787be1bf8cef2b6c7c6fa5dac1a7fb26
4
+ data.tar.gz: dca8b8242960fdd0c39ce420b46158ec932548cd75f18690f854c26c5fb8c3f7
5
5
  SHA512:
6
- metadata.gz: 873719a7f9a4af750cd6deda9a59a7953566d87558f3c7b9825cb3001f188d6453dfca58ce429fb013ffe664ea1806ebefbd081c4c2eadfee734e87dc1d167cf
7
- data.tar.gz: dff74a1adac2232a3425e6e6d9b7de0412dadd574a3dee8a114d008b9a003c9070db6a69444142980e16e7c7586f7d50f409769e616b18c298b47fb8ce25877d
6
+ metadata.gz: 76b88d72cb7774f51d01474486246cb2794467c276babb2932374137e5a75d2e32335b828cca592a56999c94f266560ce2fc4f46a17914b34a767fcabb1eb54e
7
+ data.tar.gz: 7e82e26ef4add9918f8559a089313f4690db7fccd214ffe586c923a4d6907121d9fdc804bb63329b269aec6e14fe5bad50ca9f0a73f836dff9af447d5005f494
data/README.md CHANGED
@@ -26,6 +26,8 @@ Or install it yourself as:
26
26
  ## Usage
27
27
 
28
28
  ```ruby
29
+ SemanticRange.valid?('1.2.3') # true
30
+ SemanticRange.valid?('a.b.c') # false
29
31
  SemanticRange.valid('1.2.3') # '1.2.3'
30
32
  SemanticRange.valid('a.b.c') # nil
31
33
  SemanticRange.clean(' =v1.2.3 ') # '1.2.3'
@@ -62,7 +62,7 @@ module SemanticRange
62
62
  end
63
63
 
64
64
  def last_number_index
65
- parts.rindex { |e| e.is_a? Fixnum }
65
+ parts.rindex { |e| e.is_a? Integer }
66
66
  end
67
67
 
68
68
  def increment!(identifier = nil)
@@ -80,7 +80,7 @@ module SemanticRange
80
80
  # 1.2.0-beta.1 bumps to 1.2.0-beta.2,
81
81
  # 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0
82
82
  if parts[0] == identifier
83
- unless parts[1].kind_of?(Fixnum)
83
+ unless parts[1].kind_of?(Integer)
84
84
  @parts = [identifier, 0]
85
85
  end
86
86
  else
@@ -1,5 +1,5 @@
1
1
  module SemanticRange
2
- VERSION = "3.0.0"
2
+ VERSION = "3.1.1"
3
3
 
4
4
  class Version
5
5
  attr_reader :major, :minor, :patch, :prerelease
@@ -149,8 +149,14 @@ module SemanticRange
149
149
  end
150
150
 
151
151
  def self.satisfies?(version, range, loose: false, platform: nil)
152
- return false if !valid_range(range, loose: loose, platform: platform)
153
- Range.new(range, loose: loose, platform: platform).test(version)
152
+ if valid?(range, loose: loose)
153
+ return version == range
154
+ end
155
+ begin
156
+ Range.new(range, loose: loose, platform: platform).test(version)
157
+ rescue
158
+ false
159
+ end
154
160
  end
155
161
 
156
162
  def self.filter(versions, range, loose: false, platform: nil)
@@ -221,6 +227,16 @@ module SemanticRange
221
227
  compare(a, b, loose: loose) <= 0
222
228
  end
223
229
 
230
+ def self.valid?(version, loose: false)
231
+ return false unless version.is_a?(String)
232
+
233
+ stripped_version = version.strip
234
+ return false if stripped_version.length > MAX_LENGTH
235
+
236
+ rxp = loose ? LOOSE : FULL
237
+ return rxp.match?(stripped_version)
238
+ end
239
+
224
240
  def self.valid(version, loose: false)
225
241
  v = parse(version, loose: loose)
226
242
  return v ? v.version : nil
@@ -233,17 +249,9 @@ module SemanticRange
233
249
 
234
250
  def self.parse(version, loose: false)
235
251
  return version if version.is_a?(Version)
252
+ return nil unless valid?(version, loose: loose)
236
253
 
237
- return nil unless version.is_a?(String)
238
-
239
- stripped_version = version.strip
240
-
241
- return nil if stripped_version.length > MAX_LENGTH
242
-
243
- rxp = loose ? LOOSE : FULL
244
- return nil if !rxp.match(stripped_version)
245
-
246
- Version.new(stripped_version, loose: loose)
254
+ Version.new(version.strip, loose: loose)
247
255
  end
248
256
 
249
257
  def self.increment!(version, release, identifier, loose: false)
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: semantic_range
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.0
4
+ version: 3.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Nesbitt
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2021-03-04 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: rspec
@@ -24,7 +23,6 @@ dependencies:
24
23
  - - "~>"
25
24
  - !ruby/object:Gem::Version
26
25
  version: '3.4'
27
- description:
28
26
  email:
29
27
  - andrewnez@gmail.com
30
28
  executables: []
@@ -41,8 +39,8 @@ files:
41
39
  homepage: https://libraries.io/github/librariesio/semantic_range
42
40
  licenses:
43
41
  - MIT
44
- metadata: {}
45
- post_install_message:
42
+ metadata:
43
+ rubygems_mfa_required: 'true'
46
44
  rdoc_options: []
47
45
  require_paths:
48
46
  - lib
@@ -57,8 +55,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
57
55
  - !ruby/object:Gem::Version
58
56
  version: '0'
59
57
  requirements: []
60
- rubygems_version: 3.1.2
61
- signing_key:
58
+ rubygems_version: 3.6.9
62
59
  specification_version: 4
63
60
  summary: node-semver rewritten in ruby, for comparison and inclusion of semantic versions
64
61
  and ranges