synvert-core 1.28.5 → 1.29.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: 0bec5627263e4ec474329e21a53a142f9d9320a888fd4b3d236ec538617d0ff3
4
- data.tar.gz: 0b94c83241ddc9288b4487e76d8e2f75de6a2ec0636096d3dcb2fc1fcf042001
3
+ metadata.gz: 1dda2705261d25cdacf3eed0d8c7bb02b66cdcb8bb6774ffc7839b675f685f47
4
+ data.tar.gz: a45e9724ced71c2d55ec9f517fd1a51f571b5ec01dd6d83055e87056ec627579
5
5
  SHA512:
6
- metadata.gz: 2a86dd8058630846880993ec83e7201153e98e8af1d87cbe75f3cf6f0b8dbf98affab6d360a6ded45d80597225e5a7c3117662b98c092362644a7133951243cf
7
- data.tar.gz: f2846ce3d7893d5d068d408eaafc916297e20a9f4989f5b94a495e723dc2cd6b185542ec826fc478fb88fe09d749feb6397576b2e3175099d4970c43cc4f1e12
6
+ metadata.gz: c64807dda9469a101349d4987edc2092035c1bc342ade195e82acd4d3e74f04c49002c6810c5586f812dc7b3ed8ada54780b660cd0e73d8ab2c094d03688e608
7
+ data.tar.gz: e54c85411a4aa0776c94afafd3a8cf62d0d7a33df2106c3f16ab437138c0e47b94d27c40b33f0bf0098e39a3cf88bba917d1bee1bb5c8f0224aed84be7455d42
data/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## 1.29.0 (2023-09-26)
4
+
5
+ * Update `node_mutation` to 1.21.0
6
+ * Revert "Combine actions within scope"
7
+ * Add `group` dsl
8
+
3
9
  ## 1.28.5 (2023-09-25)
4
10
 
5
11
  * Update `node-query` to 1.13.11
data/Gemfile.lock CHANGED
@@ -1,9 +1,9 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- synvert-core (1.28.5)
4
+ synvert-core (1.29.0)
5
5
  activesupport (< 7.0.0)
6
- node_mutation (>= 1.20.0)
6
+ node_mutation (>= 1.21.0)
7
7
  node_query (>= 1.13.11)
8
8
  parallel
9
9
  parser
@@ -50,7 +50,7 @@ GEM
50
50
  method_source (1.0.0)
51
51
  minitest (5.20.0)
52
52
  nenv (0.3.0)
53
- node_mutation (1.20.0)
53
+ node_mutation (1.21.0)
54
54
  node_query (1.13.11)
55
55
  notiffany (0.1.3)
56
56
  nenv (~> 0.1)
@@ -91,7 +91,7 @@ GEM
91
91
  thor (1.2.1)
92
92
  tzinfo (2.0.6)
93
93
  concurrent-ruby (~> 1.0)
94
- zeitwerk (2.6.11)
94
+ zeitwerk (2.6.12)
95
95
 
96
96
  PLATFORMS
97
97
  ruby
data/README.md CHANGED
@@ -101,6 +101,7 @@ Actions:
101
101
  * [warn](https://xinminlabs.github.io/synvert-core-ruby/Synvert/Core/Rewriter/Instance.html#warn-instance_method) - warn message
102
102
  * [replace_erb_stmt_with_expr](https://xinminlabs.github.io/synvert-core-ruby/Synvert/Core/Rewriter/Instance.html#replace_erb_stmt_with_expr-instance_method) - replace erb stmt code to expr code
103
103
  * [noop](https://xinminlabs.github.io/synvert-core-ruby/Synvert/Core/Rewriter/Instance.html#noop-instance_method) - no operation
104
+ * [group](https://xinminlabs.github.io/synvert-core-ruby/Synvert/Core/Rewriter/Instance.html#group-instance_method) - group actions
104
105
  * [add_action](https://xinminlabs.github.io/synvert-core-ruby/Synvert/Core/Rewriter/Instance.html#add_action-instance_method) - add custom action
105
106
 
106
107
  Others:
@@ -37,9 +37,7 @@ module Synvert::Core
37
37
  # @return current ast node
38
38
  # @!attribute [r] mutation_adapter
39
39
  # @return NodeMutation Adapter
40
- # @!attribute [r] current_mutation
41
- # @return current node mutation
42
- attr_reader :file_path, :mutation_adapter, :current_mutation
40
+ attr_reader :file_path, :current_node, :mutation_adapter
43
41
  attr_accessor :current_node
44
42
 
45
43
  # Process the instance.
@@ -409,6 +407,16 @@ module Synvert::Core
409
407
  @current_mutation.noop(@current_node)
410
408
  end
411
409
 
410
+ # Group actions.
411
+ # @example
412
+ # group do
413
+ # delete :message, :dot
414
+ # replace 'receiver.caller.message', with: 'flat_map'
415
+ # end
416
+ def group(&block)
417
+ @current_mutation.group(&block)
418
+ end
419
+
412
420
  # Add a custom action.
413
421
  # @example
414
422
  # remover_action = NodeMutation::RemoveAction.new(node)
@@ -29,9 +29,7 @@ module Synvert::Core
29
29
  @instance.process_with_node current_node do
30
30
  matching_nodes.each do |matching_node|
31
31
  @instance.process_with_node matching_node do
32
- @instance.current_mutation.combine do
33
- @instance.instance_eval(&@block)
34
- end
32
+ @instance.instance_eval(&@block)
35
33
  end
36
34
  end
37
35
  end
@@ -156,14 +156,15 @@ module Synvert::Core
156
156
  @test_results.map do |filename, test_results|
157
157
  new_actions = test_results.map(&:actions).flatten.sort_by(&:end)
158
158
  last_start = -1
159
- conflicted = new_actions.any? do |action|
160
- if last_start > action.end
161
- true
162
- else
163
- last_start = action.start
164
- false
159
+ conflicted =
160
+ new_actions.any? do |action|
161
+ if last_start > action.end
162
+ true
163
+ else
164
+ last_start = action.start
165
+ false
166
+ end
165
167
  end
166
- end
167
168
  result = NodeMutation::Result.new(affected: true, conflicted: conflicted)
168
169
  result.actions = new_actions
169
170
  result.file_path = filename
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Synvert
4
4
  module Core
5
- VERSION = '1.28.5'
5
+ VERSION = '1.29.0'
6
6
  end
7
7
  end
@@ -262,6 +262,13 @@ module Synvert::Core
262
262
  instance.noop
263
263
  end
264
264
 
265
+ it 'parses group' do
266
+ instance.instance_variable_set(:@current_mutation, double)
267
+ instance.current_node = double
268
+ expect(instance.instance_variable_get(:@current_mutation)).to receive(:group)
269
+ instance.group {}
270
+ end
271
+
265
272
  it 'parses warn' do
266
273
  expect(Rewriter::Warning).to receive(:new).with(instance, 'foobar')
267
274
  instance.warn 'foobar'
@@ -6,9 +6,7 @@ module Synvert::Core
6
6
  describe Rewriter::WithinScope do
7
7
  let(:instance) {
8
8
  rewriter = Rewriter.new('foo', 'bar')
9
- Rewriter::Instance.new(rewriter, 'file pattern').tap do |instance|
10
- instance.instance_variable_set(:@current_mutation, NodeMutation.new('source'))
11
- end
9
+ Rewriter::Instance.new(rewriter, 'file pattern')
12
10
  }
13
11
  let(:source) { <<~EOS }
14
12
  describe User do
@@ -21,7 +21,7 @@ Gem::Specification.new do |spec|
21
21
 
22
22
  spec.add_runtime_dependency "activesupport", "< 7.0.0"
23
23
  spec.add_runtime_dependency "node_query", ">= 1.13.11"
24
- spec.add_runtime_dependency "node_mutation", ">= 1.20.0"
24
+ spec.add_runtime_dependency "node_mutation", ">= 1.21.0"
25
25
  spec.add_runtime_dependency "parser"
26
26
  spec.add_runtime_dependency "parser_node_ext", ">= 1.2.0"
27
27
  spec.add_runtime_dependency "syntax_tree"
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: 1.28.5
4
+ version: 1.29.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: 2023-09-24 00:00:00.000000000 Z
11
+ date: 2023-09-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -44,14 +44,14 @@ dependencies:
44
44
  requirements:
45
45
  - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: 1.20.0
47
+ version: 1.21.0
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: 1.20.0
54
+ version: 1.21.0
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: parser
57
57
  requirement: !ruby/object:Gem::Requirement