synvert-core 0.24.0 → 0.25.0

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: b07d8def5ce35c251b7d1f7b04388654aadce0b6498c969b81457c9867d37dfb
4
- data.tar.gz: d43a62b62ba6a4fa6bd51a97f7dfd6a4a805651d8ae6a595eac4724bba67f792
3
+ metadata.gz: 8365e77c33d2effc81fe2cd19d522785282db9c06aa8e399c6469f9cbdc32cc7
4
+ data.tar.gz: c60c8a032106b681abdac98b31a87cfbac6649959eb21fe1bbd0e6be1486c53c
5
5
  SHA512:
6
- metadata.gz: 98a9a81c409ca86ad13a58d00ef380ced1bc0a0fd3288c970e13f9a04ed4f13180b2b3e20ed87fc3521ee61531709507e7ce412ab7802c5d1091ef39fc63dca3
7
- data.tar.gz: 05ecb25382bca6d4cc0e677b1ea3ccf19a0113bf2376fc1888135c1f069c4a4d7b2196f648b0433133761646d6dae8de4a43f43e28b506062ad97c236c9c38f3
6
+ metadata.gz: 2017b6bb33289a7a2c2cba047f966079ae07fa6035acf819b1898c32ee7fc38417dc424c9ba263a33989e3eb0e241bdef32b816135ae1b86e0aae9f176be14d0
7
+ data.tar.gz: a71a80f5a7c177950a52eebad506778fd7a8993577d7c7ec22e57467a7a80a0610edf5a08bc23d9d831547ec4560da077bae5e358f9f4e3c34c089a6674bbd7f
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## 0.25.0 (2021-03-23)
4
+
5
+ * Use `Gem::Dependency#match?` to check gem version
6
+
3
7
  ## 0.24.0 (2021-03-17)
4
8
 
5
9
  * Rename helper method `has_key?` to `key?`
@@ -205,7 +205,7 @@ module Parser::AST
205
205
  value_node = children.find { |pair_node| pair_node.key.to_value == key }
206
206
  value_node ? value_node.value : nil
207
207
  else
208
- raise Synvert::Core::MethodNotSupported, "has_value is not handled for #{debug_info}"
208
+ raise Synvert::Core::MethodNotSupported, "hash_value is not handled for #{debug_info}"
209
209
  end
210
210
  end
211
211
 
@@ -3,22 +3,13 @@
3
3
  module Synvert::Core
4
4
  # GemSpec checks and compares gem version.
5
5
  class Rewriter::GemSpec
6
- OPERATORS = { eq: '==', lt: '<', gt: '>', lte: '<=', gte: '>=', ne: '!=' }.freeze
7
-
8
6
  # Initialize a gem_spec.
9
7
  #
10
8
  # @param name [String] gem name
11
- # @param comparator [Hash] comparator to gem version, e.g. {eq: '2.0.0'},
12
- # comparator key can be eq, lt, gt, lte, gte or ne.
13
- def initialize(name, comparator)
9
+ # @param version [String] gem version, e.g. '~> 2.0.0',
10
+ def initialize(name, version)
14
11
  @name = name
15
- if comparator.is_a?(Hash)
16
- @operator = comparator.keys.first
17
- @version = Gem::Version.new comparator.values.first
18
- else
19
- @operator = :eq
20
- @version = Gem::Version.new comparator
21
- end
12
+ @version = version
22
13
  end
23
14
 
24
15
  # Check if the specified gem version in Gemfile.lock matches gem_spec comparator.
@@ -33,11 +24,7 @@ module Synvert::Core
33
24
 
34
25
  ENV['BUNDLE_GEMFILE'] = Configuration.path # make sure bundler reads Gemfile.lock in the correct path
35
26
  parser = Bundler::LockfileParser.new(File.read(gemfile_lock_path))
36
- if spec = parser.specs.find { |spec| spec.name == @name }
37
- Gem::Version.new(spec.version).send(OPERATORS[@operator], @version)
38
- else
39
- false
40
- end
27
+ parser.specs.any? { |spec| Gem::Dependency.new(@name, @version).match?(spec) }
41
28
  end
42
29
  end
43
30
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Synvert
4
4
  module Core
5
- VERSION = '0.24.0'
5
+ VERSION = '0.25.0'
6
6
  end
7
7
  end
@@ -21,7 +21,7 @@ GEM
21
21
  it 'returns true if version in Gemfile.lock is greater than definition' do
22
22
  expect(File).to receive(:exist?).with('./Gemfile.lock').and_return(true)
23
23
  expect(File).to receive(:read).with('./Gemfile.lock').and_return(gemfile_lock_content)
24
- gem_spec = Rewriter::GemSpec.new('ast', { gte: '1.0.0' })
24
+ gem_spec = Rewriter::GemSpec.new('ast', '~> 1.1')
25
25
  expect(gem_spec).to be_match
26
26
  end
27
27
 
@@ -35,7 +35,7 @@ GEM
35
35
  it 'returns false if version in Gemfile.lock is less than definition' do
36
36
  expect(File).to receive(:exist?).with('./Gemfile.lock').and_return(true)
37
37
  expect(File).to receive(:read).with('./Gemfile.lock').and_return(gemfile_lock_content)
38
- gem_spec = Rewriter::GemSpec.new('ast', { gt: '1.2.0' })
38
+ gem_spec = Rewriter::GemSpec.new('ast', '> 1.2.0')
39
39
  expect(gem_spec).not_to be_match
40
40
  end
41
41
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: synvert-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.24.0
4
+ version: 0.25.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Richard Huang
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-03-17 00:00:00.000000000 Z
11
+ date: 2021-03-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport