synvert-core 1.33.1 → 1.33.3

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: bc05338573c2a8a930dfbbafec5aa122da815e072fea47e1ac9c83f97753fa97
4
- data.tar.gz: 40764685f615c7b236e6f96a8242d9b9088dce8c5901384e9ef74428ce04a0da
3
+ metadata.gz: a0b171e345173ce6e1519cc68c1fd4aca91e796d56554ba63875c0402b3b202f
4
+ data.tar.gz: 218dcbcacb00ff39d4de981dc76178c552081577fe4cfaeadad291a1b42b7d46
5
5
  SHA512:
6
- metadata.gz: 5a02ad97db0eaea55a971d5fd58c244f49ce442e2d38dd170d41132e55ecb785f39627e90826454f89f55d3f7b41b701c6bdca46b58639d9fbb185924d1eaf35
7
- data.tar.gz: e64da537b70a1d2f4e25b9a0e74955b9f51acdcd57f1dd241bf8a497af57b1c7f2ff427a400dfbe3fff00dc23c556ec54f59f01eea9879cd0ee56b99a6f6d41f
6
+ metadata.gz: 6c96410cb92044bfeca2ebbc07cd2340973bd3320a10060c4bdad4a95db48d31d62e358a9929c40639904633dd9cd09238d34b3ce877b51d2af1a7a920cb8747
7
+ data.tar.gz: '0702947b02c043b28fc52456497e03834e94407514ccc34ae9be9f562a885cffbd9f08f0e598fe0df6d03e9c36bc4f521c1169079de748c0fadc082f76865bac'
data/CHANGELOG.md CHANGED
@@ -1,5 +1,15 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## 1.33.3 (2024-02-28)
4
+
5
+ * Preserve current parser
6
+
7
+ ## 1.33.2 (2024-02-24)
8
+
9
+ * Reset `@warnings`, `@affected_files`, and `@test_results`
10
+ * Puts `Parser::SyntaxError` message only when `ENV[DEBUG]` is true
11
+ * Raise `ParserNotSupported` if parser is not supported
12
+
3
13
  ## 1.33.1 (2024-02-23)
4
14
 
5
15
  * Try 10 times at maximum when process
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- synvert-core (1.33.1)
4
+ synvert-core (1.33.3)
5
5
  activesupport (< 7.0.0)
6
6
  node_mutation (>= 1.23.2)
7
7
  node_query (>= 1.15.1)
@@ -68,8 +68,10 @@ module Synvert::Core
68
68
  end
69
69
  break unless result.conflicted?
70
70
  rescue Parser::SyntaxError => e
71
- puts "[Warn] file #{file_path} was not parsed correctly."
72
- puts e.message
71
+ if ENV['DEBUG'] == 'true'
72
+ puts "[Warn] file #{file_path} was not parsed correctly."
73
+ puts e.message
74
+ end
73
75
  break
74
76
  end
75
77
  end
@@ -95,8 +97,10 @@ module Synvert::Core
95
97
  result.file_path = file_path
96
98
  result
97
99
  rescue Parser::SyntaxError => e
98
- puts "[Warn] file #{file_path} was not parsed correctly."
99
- puts e.message
100
+ if ENV['DEBUG'] == 'true'
101
+ puts "[Warn] file #{file_path} was not parsed correctly."
102
+ puts e.message
103
+ end
100
104
  end
101
105
  end
102
106
 
@@ -498,8 +502,10 @@ module Synvert::Core
498
502
  parse_code_by_syntax_tree(file_path, encoded_source)
499
503
  when Synvert::PRISM_PARSER
500
504
  parse_code_by_prism(file_path, encoded_source)
501
- else
505
+ when Synvert::PARSER_PARSER
502
506
  parse_code_by_parser(file_path, encoded_source)
507
+ else
508
+ raise Errors::ParserNotSupported.new("Parser #{@rewriter.parser} not supported")
503
509
  end
504
510
  end
505
511
 
@@ -117,10 +117,8 @@ module Synvert::Core
117
117
  @block = block
118
118
  @helpers = []
119
119
  @sub_snippets = []
120
- @warnings = []
121
- @affected_files = Set.new
122
120
  @options = DEFAULT_OPTIONS.dup
123
- @test_results = Hash.new { |h, k| h[k] = [] }
121
+ reset
124
122
  self.class.register(@group, @name, self)
125
123
  end
126
124
 
@@ -184,6 +182,13 @@ module Synvert::Core
184
182
  @options[:parser]
185
183
  end
186
184
 
185
+ # Reset @warnings, @affected_files, and @test_results.
186
+ def reset
187
+ @warnings = []
188
+ @affected_files = Set.new
189
+ @test_results = Hash.new { |h, k| h[k] = [] }
190
+ end
191
+
187
192
  #######
188
193
  # DSL #
189
194
  #######
@@ -356,13 +361,15 @@ module Synvert::Core
356
361
  return unless rewriter && rewriter.is_a?(Rewriter)
357
362
 
358
363
  rewriter.options = @options
359
- if !rewriter.options[:write_to_file]
360
- results = rewriter.test
361
- merge_test_results(results)
362
- elsif rewriter.options[:run_instance]
363
- rewriter.process
364
- else
365
- rewriter.process_with_sandbox
364
+ preserve_current_parser do
365
+ if !rewriter.options[:write_to_file]
366
+ results = rewriter.test
367
+ merge_test_results(results)
368
+ elsif rewriter.options[:run_instance]
369
+ rewriter.process
370
+ else
371
+ rewriter.process_with_sandbox
372
+ end
366
373
  end
367
374
  @sub_snippets << rewriter
368
375
  end
@@ -380,7 +387,9 @@ module Synvert::Core
380
387
  helper = Synvert::Core::Helper.fetch(name) || Utils.eval_snippet(name)
381
388
  return unless helper && helper.is_a?(Synvert::Core::Helper)
382
389
 
383
- instance_exec(options, &helper.block)
390
+ preserve_current_parser do
391
+ instance_exec(options, &helper.block)
392
+ end
384
393
  end
385
394
 
386
395
  # It defines helper method for {Synvert::Core::Rewriter::Instance}.
@@ -427,5 +436,12 @@ module Synvert::Core
427
436
  def merge_test_result(result)
428
437
  @test_results[result.file_path] << result
429
438
  end
439
+
440
+ def preserve_current_parser
441
+ current_parser = @options[:parser]
442
+ yield
443
+ ensure
444
+ @options[:parser] = current_parser
445
+ end
430
446
  end
431
447
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Synvert
4
4
  module Core
5
- VERSION = '1.33.1'
5
+ VERSION = '1.33.3'
6
6
  end
7
7
  end
@@ -4,6 +4,19 @@ require 'spec_helper'
4
4
 
5
5
  module Synvert::Core
6
6
  RSpec.describe Rewriter do
7
+ describe '#reset' do
8
+ it 'resets warnings, affected_files, and test_results' do
9
+ rewriter = Rewriter.new 'group', 'name'
10
+ rewriter.instance_variable_set(:@warnings, ['warnings'])
11
+ rewriter.instance_variable_set(:@affected_files, ['files'])
12
+ rewriter.instance_variable_set(:@test_results, { foo: 'bar' })
13
+ rewriter.reset
14
+ expect(rewriter.warnings).to eq []
15
+ expect(rewriter.affected_files).to eq Set.new
16
+ expect(rewriter.test_results).to eq Hash.new
17
+ end
18
+ end
19
+
7
20
  describe '#configure' do
8
21
  it 'parses parser' do
9
22
  running_mutation_adapter = nil
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.33.1
4
+ version: 1.33.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Richard Huang
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-02-23 00:00:00.000000000 Z
11
+ date: 2024-02-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport