synvert-core 1.34.0 → 1.35.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: 7407325ab10af6e8e90b2a2e10bc737686a555603f362319779a2a9868d8ba71
4
- data.tar.gz: eb2f33a8ea48fc4836af3529ca4f684c7c8e1c98a797d55703ada5b60505878e
3
+ metadata.gz: 73d980abab80a00253b41153d665ee2036c4111d8c68fad0884e767e121f20a9
4
+ data.tar.gz: 3f83634246155bc0be00a09ff1ba4c43e31160e9b9ce8337e3c20f39b40392f1
5
5
  SHA512:
6
- metadata.gz: 70c762d52252e31200861d30d418f4f634ff4f9dfcacd1d11964865be664118a78a6a76362614232f5a1b465ad8862d974adfa1f3baed6395cac6dac000ebffc
7
- data.tar.gz: df130135e5df9453b3f4d6847c68aaf0703fb31765b384ca86c31ca52c0d60c60f64717ac2b26457d872a5a523a640cb5f6a9b7715fefe2b3df2008f691e3b01
6
+ metadata.gz: c28dc61a913dfe6b7f65ac76cad9eed4ff71c83b09c5ae26901bb8333707a00d050062f2bdc60ceec32f0a9dafbc6f5bd9a49af687781e1f815a469abb8fe5c0
7
+ data.tar.gz: 3a126aa7dfca96796d8b07aeb666630cf30b12252e3f08f6e5f98b09e998634db0b9f708029ffc975348ca1b713e1e03f317a5740498be2fa6121c20b347f92d
data/CHANGELOG.md CHANGED
@@ -1,5 +1,14 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## 1.35.0 (2024-04-07)
4
+
5
+ * Update `prism_ext` to 0.3.0
6
+ * Update `syntax_tree_ext` to 0.8.1
7
+ * Update `parser_node_ext` to 1.3.0
8
+ * Update `node_query` to 1.15.2
9
+ * Update `node_mutation` to 1.24.3
10
+ * Remove `if_only_exist_node` dsl
11
+
3
12
  ## 1.34.0 (2024-02-29)
4
13
 
5
14
  * Add `with_configurations` dsl
data/Gemfile.lock CHANGED
@@ -1,9 +1,9 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- synvert-core (1.34.0)
4
+ synvert-core (1.35.0)
5
5
  activesupport (< 7.0.0)
6
- node_mutation (>= 1.23.2)
6
+ node_mutation (>= 1.24.1)
7
7
  node_query (>= 1.15.1)
8
8
  parallel
9
9
  parser
@@ -43,17 +43,17 @@ GEM
43
43
  guard (~> 2.1)
44
44
  guard-compat (~> 1.1)
45
45
  rspec (>= 2.99.0, < 4.0)
46
- i18n (1.14.1)
46
+ i18n (1.14.4)
47
47
  concurrent-ruby (~> 1.0)
48
48
  listen (3.7.1)
49
49
  rb-fsevent (~> 0.10, >= 0.10.3)
50
50
  rb-inotify (~> 0.9, >= 0.9.10)
51
51
  lumberjack (1.2.8)
52
52
  method_source (1.0.0)
53
- minitest (5.22.2)
53
+ minitest (5.22.3)
54
54
  nenv (0.3.0)
55
- node_mutation (1.23.3)
56
- node_query (1.15.1)
55
+ node_mutation (1.24.3)
56
+ node_query (1.15.2)
57
57
  notiffany (0.1.3)
58
58
  nenv (~> 0.1)
59
59
  shellany (~> 0.0)
@@ -61,11 +61,11 @@ GEM
61
61
  parser (3.3.0.5)
62
62
  ast (~> 2.4.1)
63
63
  racc
64
- parser_node_ext (1.2.2)
64
+ parser_node_ext (1.3.0)
65
65
  parser
66
66
  prettier_print (1.2.1)
67
- prism (0.24.0)
68
- prism_ext (0.2.3)
67
+ prism (0.25.0)
68
+ prism_ext (0.3.0)
69
69
  prism
70
70
  pry (0.14.1)
71
71
  coderay (~> 1.1)
@@ -91,7 +91,7 @@ GEM
91
91
  shellany (0.0.1)
92
92
  syntax_tree (6.2.0)
93
93
  prettier_print (>= 1.2.0)
94
- syntax_tree_ext (0.7.2)
94
+ syntax_tree_ext (0.8.1)
95
95
  syntax_tree
96
96
  thor (1.2.1)
97
97
  tzinfo (2.0.6)
data/README.md CHANGED
@@ -2,8 +2,9 @@
2
2
 
3
3
  <img src="https://synvert.net/img/logo_96.png" alt="logo" width="32" height="32" />
4
4
 
5
- [![AwesomeCode Status for xinminlabs/synvert-core-ruby](https://awesomecode.io/projects/033f7f02-7b22-41c3-a902-fca37f1ec72a/status)](https://awesomecode.io/repos/xinminlabs/synvert-core-ruby)
6
- ![Main workflow](https://github.com/xinminlabs/synvert-core-ruby/actions/workflows/main.yml/badge.svg)
5
+ [![AwesomeCode Status for synvert-hq/synvert-core-ruby](https://awesomecode.io/projects/033f7f02-7b22-41c3-a902-fca37f1ec72a/status)](https://awesomecode.io/repos/synvert-hq/synvert-core-ruby)
6
+ [![Build Status](https://github.com/synvert-hq/synvert-core-ruby/actions/workflows/main.yml/badge.svg)](https://github.com/synvert-hq/synvert-core-ruby/actions/workflows/main.yml)
7
+ [![Gem Version](https://img.shields.io/gem/v/synvert-core.svg)](https://rubygems.org/gems/synvert-core)
7
8
 
8
9
  Synvert core provides a set of DSLs to rewrite ruby code. e.g.
9
10
 
@@ -53,67 +54,66 @@ Synvert::Rewriter.new 'factory_bot', 'convert_factory_girl_to_factory_bot' do
53
54
  end
54
55
  ```
55
56
 
56
- Want to see more examples, check out [synvert-snippets-ruby](https://github.com/xinminlabs/synvert-snippets-ruby).
57
+ Want to see more examples, check out [synvert-snippets-ruby](https://github.com/synvert-hq/synvert-snippets-ruby).
57
58
 
58
- Want to use the CLI, check out [synvert-ruby](https://github.com/xinminlabs/synvert-ruby).
59
+ Want to use the CLI, check out [synvert-ruby](https://github.com/synvert-hq/synvert-ruby).
59
60
 
60
61
  DSLs are as follows
61
62
 
62
- * [configure](https://xinminlabs.github.io/synvert-core-ruby/Synvert/Core/Rewriter.html#configure-instance_method) - configure the rewriter
63
- * [description](https://xinminlabs.github.io/synvert-core-ruby/Synvert/Core/Rewriter.html#description-instance_method) - describe what the rewriter does
64
- * [if_ruby](https://xinminlabs.github.io/synvert-core-ruby/Synvert/Core/Rewriter.html#if_ruby-instance_method) - check if ruby version is greater than or equal to the specified ruby version
65
- * [if_gem](https://xinminlabs.github.io/synvert-core-ruby/Synvert/Core/Rewriter.html#if_gem-instance_method) - compare version of specified gem
66
- * [within_files](https://xinminlabs.github.io/synvert-core-ruby/Synvert/Core/Rewriter.html#within_files-instance_method) - find specified files
67
- * [within_file](https://xinminlabs.github.io/synvert-core-ruby/Synvert/Core/Rewriter.html#within_file-instance_method) - alias to within_files
68
- * [add_file](https://xinminlabs.github.io/synvert-core-ruby/Synvert/Core/Rewriter.html#add_file-instance_method) - add a new file
69
- * [remove_file](https://xinminlabs.github.io/synvert-core-ruby/Synvert/Core/Rewriter.html#remove_file-instance_method) - remove a file
70
- * [helper_method](https://xinminlabs.github.io/synvert-core-ruby/Synvert/Core/Rewriter.html#helper_method-instance_method) - define a helper method
71
- * [add_snippet](https://xinminlabs.github.io/synvert-core-ruby/Synvert/Core/Rewriter.html#add_snippet-instance_method) - call another rewriter
72
- * [call_helper](https://xinminlabs.github.io/synvert-core-ruby/Synvert/Core/Rewriter.html#call_helper-instance_method) - call a shared rewriter
73
- * [with_configurations](https://xinminlabs.github.io/synvert-core-ruby/Synvert/Core/Rewriter.html#with_configurations-instance_method) - execute a block of code with temporary configurations
74
- * [save_data](https://xinminlabs.github.io/synvert-core-ruby/Synvert/Core/Rewriter.html#save_data-instance_method) - save data
75
- * [load_data](https://xinminlabs.github.io/synvert-core-ruby/Synvert/Core/Rewriter.html#load_data-instance_method) - load data
63
+ * [configure](https://synvert-hq.github.io/synvert-core-ruby/Synvert/Core/Rewriter.html#configure-instance_method) - configure the rewriter
64
+ * [description](https://synvert-hq.github.io/synvert-core-ruby/Synvert/Core/Rewriter.html#description-instance_method) - describe what the rewriter does
65
+ * [if_ruby](https://synvert-hq.github.io/synvert-core-ruby/Synvert/Core/Rewriter.html#if_ruby-instance_method) - check if ruby version is greater than or equal to the specified ruby version
66
+ * [if_gem](https://synvert-hq.github.io/synvert-core-ruby/Synvert/Core/Rewriter.html#if_gem-instance_method) - compare version of specified gem
67
+ * [within_files](https://synvert-hq.github.io/synvert-core-ruby/Synvert/Core/Rewriter.html#within_files-instance_method) - find specified files
68
+ * [within_file](https://synvert-hq.github.io/synvert-core-ruby/Synvert/Core/Rewriter.html#within_file-instance_method) - alias to within_files
69
+ * [add_file](https://synvert-hq.github.io/synvert-core-ruby/Synvert/Core/Rewriter.html#add_file-instance_method) - add a new file
70
+ * [remove_file](https://synvert-hq.github.io/synvert-core-ruby/Synvert/Core/Rewriter.html#remove_file-instance_method) - remove a file
71
+ * [helper_method](https://synvert-hq.github.io/synvert-core-ruby/Synvert/Core/Rewriter.html#helper_method-instance_method) - define a helper method
72
+ * [add_snippet](https://synvert-hq.github.io/synvert-core-ruby/Synvert/Core/Rewriter.html#add_snippet-instance_method) - call another rewriter
73
+ * [call_helper](https://synvert-hq.github.io/synvert-core-ruby/Synvert/Core/Rewriter.html#call_helper-instance_method) - call a shared rewriter
74
+ * [with_configurations](https://synvert-hq.github.io/synvert-core-ruby/Synvert/Core/Rewriter.html#with_configurations-instance_method) - execute a block of code with temporary configurations
75
+ * [save_data](https://synvert-hq.github.io/synvert-core-ruby/Synvert/Core/Rewriter.html#save_data-instance_method) - save data
76
+ * [load_data](https://synvert-hq.github.io/synvert-core-ruby/Synvert/Core/Rewriter.html#load_data-instance_method) - load data
76
77
 
77
78
  Scopes:
78
79
 
79
- * [within_node](https://xinminlabs.github.io/synvert-core-ruby/Synvert/Core/Rewriter/Instance.html#within_node-instance_method) - recursively find matching ast nodes
80
- * [with_node](https://xinminlabs.github.io/synvert-core-ruby/Synvert/Core/Rewriter/Instance.html#with_node-instance_method) - alias to within_node
81
- * [find_node](https://xinminlabs.github.io/synvert-core-ruby/Synvert/Core/Rewriter/Instance.html#find_node-instance_method) - alias to within_node
82
- * [goto_node](https://xinminlabs.github.io/synvert-core-ruby/Synvert/Core/Rewriter/Instance.html#goto_node-instance_method) - go to a child node
80
+ * [within_node](https://synvert-hq.github.io/synvert-core-ruby/Synvert/Core/Rewriter/Instance.html#within_node-instance_method) - recursively find matching ast nodes
81
+ * [with_node](https://synvert-hq.github.io/synvert-core-ruby/Synvert/Core/Rewriter/Instance.html#with_node-instance_method) - alias to within_node
82
+ * [find_node](https://synvert-hq.github.io/synvert-core-ruby/Synvert/Core/Rewriter/Instance.html#find_node-instance_method) - alias to within_node
83
+ * [goto_node](https://synvert-hq.github.io/synvert-core-ruby/Synvert/Core/Rewriter/Instance.html#goto_node-instance_method) - go to a child node
83
84
 
84
85
  Conditions:
85
86
 
86
- * [if_exist_node](https://xinminlabs.github.io/synvert-core-ruby/Synvert/Core/Rewriter/Instance.html#if_exist_node-instance_method) - check if matching node exist in the child nodes
87
- * [unless_exist_node](https://xinminlabs.github.io/synvert-core-ruby/Synvert/Core/Rewriter/Instance.html#unless_exist_node-instance_method) - check if matching node doesn't exist in the child nodes
88
- * [if_only_exist_node](https://xinminlabs.github.io/synvert-core-ruby/Synvert/Core/Rewriter/Instance.html#if_only_exist_node-instance_method) - check if current node has only one child node and the child node matches
87
+ * [if_exist_node](https://synvert-hq.github.io/synvert-core-ruby/Synvert/Core/Rewriter/Instance.html#if_exist_node-instance_method) - check if matching node exist in the child nodes
88
+ * [unless_exist_node](https://synvert-hq.github.io/synvert-core-ruby/Synvert/Core/Rewriter/Instance.html#unless_exist_node-instance_method) - check if matching node doesn't exist in the child nodes
89
89
 
90
90
  Actions:
91
91
 
92
- * [append](https://xinminlabs.github.io/synvert-core-ruby/Synvert/Core/Rewriter/Instance.html#append-instance_method) - append the code to the bottom of current node body
93
- * [prepend](https://xinminlabs.github.io/synvert-core-ruby/Synvert/Core/Rewriter/Instance.html#prepend-instance_method) - prepend the code to the bottom of current node body
94
- * [indent](https://xinminlabs.github.io/synvert-core-ruby/Synvert/Core/Rewriter/Instance.html#indent-instance_method) - indent code
95
- * [insert](https://xinminlabs.github.io/synvert-core-ruby/Synvert/Core/Rewriter/Instance.html#insert-instance_method) - insert code
96
- * [insert_after](https://xinminlabs.github.io/synvert-core-ruby/Synvert/Core/Rewriter/Instance.html#insert_after-instance_method) - insert the code next to the current node
97
- * [insert_before](https://xinminlabs.github.io/synvert-core-ruby/Synvert/Core/Rewriter/Instance.html#insert_before-instance_method) - insert the code previous to the current node
98
- * [replace](https://xinminlabs.github.io/synvert-core-ruby/Synvert/Core/Rewriter/Instance.html#replace-instance_method) - replace the code of specified child nodes
99
- * [delete](https://xinminlabs.github.io/synvert-core-ruby/Synvert/Core/Rewriter/Instance.html#delete-instance_method) - delete the code in specified child nodes
100
- * [remove](https://xinminlabs.github.io/synvert-core-ruby/Synvert/Core/Rewriter/Instance.html#remove-instance_method) - remove the whole code of current node
101
- * [wrap](https://xinminlabs.github.io/synvert-core-ruby/Synvert/Core/Rewriter/Instance.html#wrap-instance_method) - wrap the current node with prefix and suffix code
102
- * [replace_with](https://xinminlabs.github.io/synvert-core-ruby/Synvert/Core/Rewriter/Instance.html#replace_with-instance_method) - replace the whole code of current node
103
- * [warn](https://xinminlabs.github.io/synvert-core-ruby/Synvert/Core/Rewriter/Instance.html#warn-instance_method) - warn message
104
- * [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
105
- * [noop](https://xinminlabs.github.io/synvert-core-ruby/Synvert/Core/Rewriter/Instance.html#noop-instance_method) - no operation
106
- * [group](https://xinminlabs.github.io/synvert-core-ruby/Synvert/Core/Rewriter/Instance.html#group-instance_method) - group actions
107
- * [add_action](https://xinminlabs.github.io/synvert-core-ruby/Synvert/Core/Rewriter/Instance.html#add_action-instance_method) - add custom action
92
+ * [append](https://synvert-hq.github.io/synvert-core-ruby/Synvert/Core/Rewriter/Instance.html#append-instance_method) - append the code to the bottom of current node body
93
+ * [prepend](https://synvert-hq.github.io/synvert-core-ruby/Synvert/Core/Rewriter/Instance.html#prepend-instance_method) - prepend the code to the bottom of current node body
94
+ * [indent](https://synvert-hq.github.io/synvert-core-ruby/Synvert/Core/Rewriter/Instance.html#indent-instance_method) - indent code
95
+ * [insert](https://synvert-hq.github.io/synvert-core-ruby/Synvert/Core/Rewriter/Instance.html#insert-instance_method) - insert code
96
+ * [insert_after](https://synvert-hq.github.io/synvert-core-ruby/Synvert/Core/Rewriter/Instance.html#insert_after-instance_method) - insert the code next to the current node
97
+ * [insert_before](https://synvert-hq.github.io/synvert-core-ruby/Synvert/Core/Rewriter/Instance.html#insert_before-instance_method) - insert the code previous to the current node
98
+ * [replace](https://synvert-hq.github.io/synvert-core-ruby/Synvert/Core/Rewriter/Instance.html#replace-instance_method) - replace the code of specified child nodes
99
+ * [delete](https://synvert-hq.github.io/synvert-core-ruby/Synvert/Core/Rewriter/Instance.html#delete-instance_method) - delete the code in specified child nodes
100
+ * [remove](https://synvert-hq.github.io/synvert-core-ruby/Synvert/Core/Rewriter/Instance.html#remove-instance_method) - remove the whole code of current node
101
+ * [wrap](https://synvert-hq.github.io/synvert-core-ruby/Synvert/Core/Rewriter/Instance.html#wrap-instance_method) - wrap the current node with prefix and suffix code
102
+ * [replace_with](https://synvert-hq.github.io/synvert-core-ruby/Synvert/Core/Rewriter/Instance.html#replace_with-instance_method) - replace the whole code of current node
103
+ * [warn](https://synvert-hq.github.io/synvert-core-ruby/Synvert/Core/Rewriter/Instance.html#warn-instance_method) - warn message
104
+ * [replace_erb_stmt_with_expr](https://synvert-hq.github.io/synvert-core-ruby/Synvert/Core/Rewriter/Instance.html#replace_erb_stmt_with_expr-instance_method) - replace erb stmt code to expr code
105
+ * [noop](https://synvert-hq.github.io/synvert-core-ruby/Synvert/Core/Rewriter/Instance.html#noop-instance_method) - no operation
106
+ * [group](https://synvert-hq.github.io/synvert-core-ruby/Synvert/Core/Rewriter/Instance.html#group-instance_method) - group actions
107
+ * [add_action](https://synvert-hq.github.io/synvert-core-ruby/Synvert/Core/Rewriter/Instance.html#add_action-instance_method) - add custom action
108
108
 
109
109
  Others:
110
110
 
111
- * [wrap_with_quotes](https://xinminlabs.github.io/synvert-core-ruby/Synvert/Core/Rewriter/Instance.html#wrap_with_quotes-instance_method) - wrap string code with single or doulbe quotes
112
- * [add_leading_spaces](https://xinminlabs.github.io/synvert-core-ruby/Synvert/Core/Rewriter/Instance.html#add_leading_spaces-instance_method) - add leading spaces before the string code
111
+ * [wrap_with_quotes](https://synvert-hq.github.io/synvert-core-ruby/Synvert/Core/Rewriter/Instance.html#wrap_with_quotes-instance_method) - wrap string code with single or doulbe quotes
112
+ * [add_leading_spaces](https://synvert-hq.github.io/synvert-core-ruby/Synvert/Core/Rewriter/Instance.html#add_leading_spaces-instance_method) - add leading spaces before the string code
113
113
 
114
114
 
115
115
  Attributes:
116
116
 
117
- * [file_path](https://xinminlabs.github.io/synvert-core-ruby/Synvert/Core/Rewriter/Instance.html#file_path-instance_method) - current file path
118
- * [node](https://xinminlabs.github.io/synvert-core-ruby/Synvert/Core/Rewriter/Instance.html#node-instance_method) - current ast node
119
- * [mutation_adapter](https://xinminlabs.github.io/synvert-core-ruby/Synvert/Core/Rewriter/Instance.html#mutation_adapter-instance_method) - [mutation adapter](https://xinminlabs.github.io/node-mutation-ruby/NodeMutation/Adapter.html) to get some helper methods
117
+ * [file_path](https://synvert-hq.github.io/synvert-core-ruby/Synvert/Core/Rewriter/Instance.html#file_path-instance_method) - current file path
118
+ * [node](https://synvert-hq.github.io/synvert-core-ruby/Synvert/Core/Rewriter/Instance.html#node-instance_method) - current ast node
119
+ * [mutation_adapter](https://synvert-hq.github.io/synvert-core-ruby/Synvert/Core/Rewriter/Instance.html#mutation_adapter-instance_method) - [mutation adapter](https://synvert-hq.github.io/node-mutation-ruby/NodeMutation/Adapter.html) to get some helper methods
@@ -48,8 +48,8 @@ module Synvert::Core
48
48
 
49
49
  absolute_file_path = File.join(Configuration.root_path, @file_path)
50
50
  # It keeps running until no conflict,
51
- # it will try 10 times at maximum.
52
- 10.times do
51
+ # it will try 5 times at maximum.
52
+ 5.times do
53
53
  source = read_source(absolute_file_path)
54
54
  encoded_source = Engine.encode(File.extname(file_path), source)
55
55
  @current_mutation = NodeMutation.new(source, adapter: @rewriter.parser)
@@ -216,21 +216,6 @@ module Synvert::Core
216
216
  Rewriter::UnlessExistCondition.new(self, nql_or_rules, &block).process
217
217
  end
218
218
 
219
- # It creates a {Synvert::Core::Rewriter::IfOnlyExistCondition} to check
220
- # if current node has only one child node and the child node matches,
221
- # if so, then continue operating on each matching ast node.
222
- # @example
223
- # # it { should matcher }
224
- # with_node type: 'block', caller: { message: 'it' } do
225
- # if_only_exist_node type: 'send', receiver: nil, message: 'should' do
226
- # end
227
- # end
228
- # @param nql_or_rules [String|Hash] nql or rules to check mathing ast nodes.
229
- # @param block [Block] block code to continue operating on the matching nodes.
230
- def if_only_exist_node(nql_or_rules, &block)
231
- Rewriter::IfOnlyExistCondition.new(self, nql_or_rules, &block).process
232
- end
233
-
234
219
  # It appends the code to the bottom of current node body.
235
220
  # @example
236
221
  # # def teardown
@@ -24,7 +24,6 @@ module Synvert::Core
24
24
  autoload :Condition, 'synvert/core/rewriter/condition'
25
25
  autoload :IfExistCondition, 'synvert/core/rewriter/condition/if_exist_condition'
26
26
  autoload :UnlessExistCondition, 'synvert/core/rewriter/condition/unless_exist_condition'
27
- autoload :IfOnlyExistCondition, 'synvert/core/rewriter/condition/if_only_exist_condition'
28
27
 
29
28
  autoload :Helper, 'synvert/core/rewriter/helper'
30
29
 
@@ -346,8 +345,8 @@ module Synvert::Core
346
345
  # add_snippet 'minitest/assert_kind_of'
347
346
  # add_snippet '/Users/flyerhzm/.synvert-ruby/lib/minitest/assert_match.rb'
348
347
  # add_snippet '/Users/flyerhzm/.synvert-ruby/lib/minitest/assert_nil.rb'
349
- # add_snippet 'https://github.com/xinminlabs/synvert-snippets-ruby/blob/main/lib/minitest/assert_silent.rb'
350
- # add_snippet 'https://github.com/xinminlabs/synvert-snippets-ruby/blob/main/lib/minitest/assert_truthy.rb'
348
+ # add_snippet 'https://github.com/synvert-hq/synvert-snippets-ruby/blob/main/lib/minitest/assert_silent.rb'
349
+ # add_snippet 'https://github.com/synvert-hq/synvert-snippets-ruby/blob/main/lib/minitest/assert_truthy.rb'
351
350
  # end
352
351
  # @param group [String] group of another rewriter, if there's no name parameter, the group can be http url, file path or snippet name.
353
352
  # @param name [String] name of another rewriter.
@@ -379,7 +378,7 @@ module Synvert::Core
379
378
  # Synvert::Rewriter.new 'rails', 'upgrade_6_0_to_6_1' do
380
379
  # call_helper 'rails/set_load_defaults', rails_version: '6.1'
381
380
  # add_snippet '/Users/flyerhzm/.synvert-ruby/lib/rails/set_load_defaults.rb', rails_version: '6.1'
382
- # add_snippet 'https://github.com/xinminlabs/synvert-snippets-ruby/blob/main/lib/rails/set_load_defaults.rb', rails_version: '6.1'
381
+ # add_snippet 'https://github.com/synvert-hq/synvert-snippets-ruby/blob/main/lib/rails/set_load_defaults.rb', rails_version: '6.1'
383
382
  # end
384
383
  # @param name [String] name of helper.
385
384
  # @param options [Hash] options to pass to helper.
@@ -80,7 +80,7 @@ module Synvert::Core
80
80
  end
81
81
 
82
82
  def remote_snippet_url(snippet_name)
83
- "https://github.com/xinminlabs/synvert-snippets-ruby/blob/main/lib/#{snippet_name}.rb"
83
+ "https://github.com/synvert-hq/synvert-snippets-ruby/blob/main/lib/#{snippet_name}.rb"
84
84
  end
85
85
 
86
86
  def format_url(url)
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Synvert
4
4
  module Core
5
- VERSION = '1.34.0'
5
+ VERSION = '1.35.0'
6
6
  end
7
7
  end
@@ -91,16 +91,6 @@ module Synvert::Core
91
91
  instance.unless_exist_node(type: 'send', message: 'create', &block)
92
92
  end
93
93
 
94
- it 'parses if_only_exist_node' do
95
- condition = double
96
- block = proc {}
97
- expect(Rewriter::IfOnlyExistCondition).to receive(:new)
98
- .with(instance, { type: 'send', message: 'create' }, &block)
99
- .and_return(condition)
100
- expect(condition).to receive(:process)
101
- instance.if_only_exist_node(type: 'send', message: 'create', &block)
102
- end
103
-
104
94
  it 'parses append' do
105
95
  instance.instance_variable_set(:@current_mutation, double)
106
96
  instance.current_node = double
@@ -45,7 +45,7 @@ module Synvert::Core
45
45
  expect(File).to receive(:exist?).with("group/name").and_return(false)
46
46
  expect(described_class).to receive(:default_snippets_home).and_return('/home/richard/.synvert-ruby')
47
47
  expect(File).to receive(:exist?).with("/home/richard/.synvert-ruby/lib/group/name.rb").and_return(false)
48
- expect(described_class).to receive(:remote_snippet_exists?).with(URI.parse("https://raw.githubusercontent.com/xinminlabs/synvert-snippets-ruby/main/lib/group/name.rb")).and_return(true)
48
+ expect(described_class).to receive(:remote_snippet_exists?).with(URI.parse("https://raw.githubusercontent.com/synvert-hq/synvert-snippets-ruby/main/lib/group/name.rb")).and_return(true)
49
49
  expect_any_instance_of(URI::HTTP).to receive(:open).and_return(StringIO.new("Rewriter.new 'group', 'name' do\nend"))
50
50
  rewriter = described_class.eval_snippet('group/name')
51
51
  expect(rewriter.group).to eq 'group'
@@ -11,7 +11,7 @@ Gem::Specification.new do |spec|
11
11
  spec.email = ["flyerhzm@gmail.com"]
12
12
  spec.summary = 'convert ruby code to better syntax.'
13
13
  spec.description = 'convert ruby code to better syntax automatically.'
14
- spec.homepage = "https://github.com/xinminlabs/synvert-core-ruby"
14
+ spec.homepage = "https://github.com/synvert-hq/synvert-core-ruby"
15
15
  spec.license = "MIT"
16
16
 
17
17
  spec.files = `git ls-files -z`.split("\x0")
@@ -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.15.1"
24
- spec.add_runtime_dependency "node_mutation", ">= 1.23.2"
24
+ spec.add_runtime_dependency "node_mutation", ">= 1.24.1"
25
25
  spec.add_runtime_dependency "parser"
26
26
  spec.add_runtime_dependency "parser_node_ext", ">= 1.2.2"
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.34.0
4
+ version: 1.35.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: 2024-02-29 00:00:00.000000000 Z
11
+ date: 2024-04-07 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.23.2
47
+ version: 1.24.1
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.23.2
54
+ version: 1.24.1
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: parser
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -181,7 +181,6 @@ files:
181
181
  - lib/synvert/core/rewriter/action/replace_erb_stmt_with_expr_action.rb
182
182
  - lib/synvert/core/rewriter/condition.rb
183
183
  - lib/synvert/core/rewriter/condition/if_exist_condition.rb
184
- - lib/synvert/core/rewriter/condition/if_only_exist_condition.rb
185
184
  - lib/synvert/core/rewriter/condition/unless_exist_condition.rb
186
185
  - lib/synvert/core/rewriter/gem_spec.rb
187
186
  - lib/synvert/core/rewriter/helper.rb
@@ -203,7 +202,6 @@ files:
203
202
  - spec/synvert/core/helper_spec.rb
204
203
  - spec/synvert/core/rewriter/action/replace_erb_stmt_with_expr_action_spec.rb
205
204
  - spec/synvert/core/rewriter/condition/if_exist_condition_spec.rb
206
- - spec/synvert/core/rewriter/condition/if_only_exist_condition_spec.rb
207
205
  - spec/synvert/core/rewriter/condition/unless_exist_condition_spec.rb
208
206
  - spec/synvert/core/rewriter/condition_spec.rb
209
207
  - spec/synvert/core/rewriter/gem_spec_spec.rb
@@ -217,7 +215,7 @@ files:
217
215
  - spec/synvert/core/rewriter_spec.rb
218
216
  - spec/synvert/core/utils_spec.rb
219
217
  - synvert-core-ruby.gemspec
220
- homepage: https://github.com/xinminlabs/synvert-core-ruby
218
+ homepage: https://github.com/synvert-hq/synvert-core-ruby
221
219
  licenses:
222
220
  - MIT
223
221
  metadata: {}
@@ -250,7 +248,6 @@ test_files:
250
248
  - spec/synvert/core/helper_spec.rb
251
249
  - spec/synvert/core/rewriter/action/replace_erb_stmt_with_expr_action_spec.rb
252
250
  - spec/synvert/core/rewriter/condition/if_exist_condition_spec.rb
253
- - spec/synvert/core/rewriter/condition/if_only_exist_condition_spec.rb
254
251
  - spec/synvert/core/rewriter/condition/unless_exist_condition_spec.rb
255
252
  - spec/synvert/core/rewriter/condition_spec.rb
256
253
  - spec/synvert/core/rewriter/gem_spec_spec.rb
@@ -1,15 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Synvert::Core
4
- # IfOnlyExistCondition checks if node has only one child node and the child node matches.
5
- class Rewriter::IfOnlyExistCondition < Rewriter::Condition
6
- private
7
-
8
- # check if only have one child node and the child node matches.
9
- #
10
- # @return [Boolean]
11
- def match?
12
- target_node.body.size == 1 && @node_query.match_node?(target_node.body.first)
13
- end
14
- end
15
- end
@@ -1,47 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- module Synvert::Core
6
- describe Rewriter::IfOnlyExistCondition do
7
- let(:source) { <<~EOS }
8
- RSpec.configure do |config|
9
- config.include EmailSpec::Helpers
10
- config.include EmailSpec::Methods
11
- end
12
- EOS
13
- let(:node) { Parser::CurrentRuby.parse(source) }
14
- let(:instance) { double(current_node: node, parser: :parser) }
15
-
16
- describe '#process' do
17
- it 'gets matching nodes' do
18
- source = ' RSpec.configure do |config| config.include EmailSpec::Helpers end '
19
- node = Parser::CurrentRuby.parse(source)
20
- instance = double(current_node: node, parser: :parser)
21
- run = false
22
- condition =
23
- Rewriter::IfOnlyExistCondition.new instance,
24
- type: 'send',
25
- message: 'include',
26
- arguments: ['EmailSpec::Helpers'] do
27
- run = true
28
- end
29
- condition.process
30
- expect(run).to be_truthy
31
- end
32
-
33
- it 'not call block if does not match' do
34
- run = false
35
- condition =
36
- Rewriter::IfOnlyExistCondition.new instance,
37
- type: 'send',
38
- message: 'include',
39
- arguments: ['EmailSpec::Helpers'] do
40
- run = true
41
- end
42
- condition.process
43
- expect(run).to be_falsey
44
- end
45
- end
46
- end
47
- end