synvert-core 1.12.0 → 1.13.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 +4 -4
- data/CHANGELOG.md +5 -0
- data/Gemfile.lock +3 -3
- data/README.md +1 -0
- data/lib/synvert/core/rewriter/instance.rb +27 -18
- data/lib/synvert/core/version.rb +1 -1
- data/spec/synvert/core/rewriter/instance_spec.rb +10 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d3d907ab2e51c1861a28d12934cf453f63df79fc23e072c1005013c5f9b137be
|
4
|
+
data.tar.gz: 16e8425a70a74b779b36265eec12aacca4b6073e5911052b0114726a740f6e99
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3a73e71ccb24cbdf40fe515fcb732e242e27e5dbac5b130bc9e88d19b8c3ef315cc7c3e00195d3d4e15f6a24bd4fb89336686ae379451e3fa7433548bd3402c8
|
7
|
+
data.tar.gz: c6e026527d96e8766a330626c330d280c6ab650834e71b56c64c4cf81a4dd7d0911d89919c16e0f651208e0d0ce1c9c3b36f6c08f4c9f5f7d04d0af4849a713d
|
data/CHANGELOG.md
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
synvert-core (1.
|
4
|
+
synvert-core (1.13.0)
|
5
5
|
activesupport (< 7.0.0)
|
6
6
|
erubis
|
7
7
|
node_mutation
|
@@ -50,10 +50,10 @@ GEM
|
|
50
50
|
method_source (1.0.0)
|
51
51
|
minitest (5.16.3)
|
52
52
|
nenv (0.3.0)
|
53
|
-
node_mutation (1.
|
53
|
+
node_mutation (1.5.0)
|
54
54
|
activesupport (< 7.0.0)
|
55
55
|
erubis
|
56
|
-
node_query (1.
|
56
|
+
node_query (1.8.1)
|
57
57
|
activesupport (< 7.0.0)
|
58
58
|
notiffany (0.1.3)
|
59
59
|
nenv (~> 0.1)
|
data/README.md
CHANGED
@@ -90,6 +90,7 @@ Actions:
|
|
90
90
|
* [prepend](./Synvert/Core/Rewriter/Instance.html#prepend-instance_method) - prepend the code to the bottom of current node body
|
91
91
|
* [insert](./Synvert/Core/Rewriter/Instance.html#insert-instance_method) - insert code
|
92
92
|
* [insert_after](./Synvert/Core/Rewriter/Instance.html#insert_after-instance_method) - insert the code next to the current node
|
93
|
+
* [insert_before](./Synvert/Core/Rewriter/Instance.html#insert_before-instance_method) - insert the code previous to the current node
|
93
94
|
* [replace](./Synvert/Core/Rewriter/Instance.html#replace-instance_method) - replace the code of specified child nodes
|
94
95
|
* [delete](./Synvert/Core/Rewriter/Instance.html#delete-instance_method) - delete the code specified child nodes
|
95
96
|
* [wrap](./Synvert/Core/Rewriter/Instance.html#wrap-instance_method) - wrap the current node with code
|
@@ -166,8 +166,7 @@ module Synvert::Core
|
|
166
166
|
Rewriter::IfOnlyExistCondition.new(self, nql_or_rules, &block).process
|
167
167
|
end
|
168
168
|
|
169
|
-
# Parse +append+ dsl, it
|
170
|
-
# append the code to the bottom of current node body.
|
169
|
+
# Parse +append+ dsl, it appends the code to the bottom of current node body.
|
171
170
|
# @example
|
172
171
|
# # def teardown
|
173
172
|
# # clean_something
|
@@ -185,8 +184,7 @@ module Synvert::Core
|
|
185
184
|
@current_mutation.append(@current_node, code)
|
186
185
|
end
|
187
186
|
|
188
|
-
# Parse +prepend+ dsl, it
|
189
|
-
# prepend the code to the top of current node body.
|
187
|
+
# Parse +prepend+ dsl, it prepends the code to the top of current node body.
|
190
188
|
# @example
|
191
189
|
# # def setup
|
192
190
|
# # do_something
|
@@ -204,7 +202,7 @@ module Synvert::Core
|
|
204
202
|
@current_mutation.prepend(@current_node, code)
|
205
203
|
end
|
206
204
|
|
207
|
-
# Parse +insert+ dsl, it
|
205
|
+
# Parse +insert+ dsl, it inserts code.
|
208
206
|
# @example
|
209
207
|
# # open('http://test.com')
|
210
208
|
# # =>
|
@@ -219,8 +217,7 @@ module Synvert::Core
|
|
219
217
|
@current_mutation.insert(@current_node, code, at: at, to: to)
|
220
218
|
end
|
221
219
|
|
222
|
-
# Parse +insert_after+ dsl, it
|
223
|
-
# insert the code next to the current node.
|
220
|
+
# Parse +insert_after+ dsl, it inserts the code next to the current node.
|
224
221
|
# @example
|
225
222
|
# # Synvert::Application.config.secret_token = "0447aa931d42918bfb934750bb78257088fb671186b5d1b6f9fddf126fc8a14d34f1d045cefab3900751c3da121a8dd929aec9bafe975f1cabb48232b4002e4e"
|
226
223
|
# # =>
|
@@ -231,11 +228,26 @@ module Synvert::Core
|
|
231
228
|
# end
|
232
229
|
# @param code [String] code need to be inserted.
|
233
230
|
def insert_after(code)
|
234
|
-
|
231
|
+
column = ' ' * NodeMutation.adapter.get_start_loc(@current_node).column
|
232
|
+
@current_mutation.insert(@current_node, "\n#{column}#{code}", { at: 'end' })
|
235
233
|
end
|
236
234
|
|
237
|
-
# Parse +
|
238
|
-
#
|
235
|
+
# Parse +insert_before+ dsl, it inserts the code previous to the current node.
|
236
|
+
# @example
|
237
|
+
# # Synvert::Application.config.secret_token = "0447aa931d42918bfb934750bb78257088fb671186b5d1b6f9fddf126fc8a14d34f1d045cefab3900751c3da121a8dd929aec9bafe975f1cabb48232b4002e4e"
|
238
|
+
# # =>
|
239
|
+
# # Synvert::Application.config.secret_key_base = "bf4f3f46924ecd9adcb6515681c78144545bba454420973a274d7021ff946b8ef043a95ca1a15a9d1b75f9fbdf85d1a3afaf22f4e3c2f3f78e24a0a188b581df"
|
240
|
+
# # Synvert::Application.config.secret_token = "0447aa931d42918bfb934750bb78257088fb671186b5d1b6f9fddf126fc8a14d34f1d045cefab3900751c3da121a8dd929aec9bafe975f1cabb48232b4002e4e"
|
241
|
+
# with_node type: 'send', message: 'secret_token=' do
|
242
|
+
# insert_before "{{receiver}}.secret_key_base = \"#{SecureRandom.hex(64)}\""
|
243
|
+
# end
|
244
|
+
# @param code [String] code need to be inserted.
|
245
|
+
def insert_before(code)
|
246
|
+
column = ' ' * NodeMutation.adapter.get_start_loc(@current_node).column
|
247
|
+
@current_mutation.insert(@current_node, "#{code}\n#{column}", { at: 'beginning' })
|
248
|
+
end
|
249
|
+
|
250
|
+
# Parse +replace_erb_stmt_with_expr+ dsl, it replaces erb stmt code to expr code.
|
239
251
|
# @example
|
240
252
|
# # <% form_for post do |f| %>
|
241
253
|
# # <% end %>
|
@@ -249,8 +261,7 @@ module Synvert::Core
|
|
249
261
|
@current_mutation.actions << Rewriter::ReplaceErbStmtWithExprAction.new(@current_node).process
|
250
262
|
end
|
251
263
|
|
252
|
-
# Parse +replace_with+ dsl, it
|
253
|
-
# replace the whole code of current node.
|
264
|
+
# Parse +replace_with+ dsl, it replaces the whole code of current node.
|
254
265
|
# @example
|
255
266
|
# # obj.stub(:foo => 1, :bar => 2)
|
256
267
|
# # =>
|
@@ -263,8 +274,7 @@ module Synvert::Core
|
|
263
274
|
@current_mutation.replace_with(@current_node, code)
|
264
275
|
end
|
265
276
|
|
266
|
-
# Parse +replace+ dsl, it
|
267
|
-
# replace the code of specified child nodes.
|
277
|
+
# Parse +replace+ dsl, it replaces the code of specified child nodes.
|
268
278
|
# @example
|
269
279
|
# # assert(object.empty?)
|
270
280
|
# # =>
|
@@ -279,7 +289,7 @@ module Synvert::Core
|
|
279
289
|
@current_mutation.replace(@current_node, *selectors, with: with)
|
280
290
|
end
|
281
291
|
|
282
|
-
# Parse +remove+ dsl, it
|
292
|
+
# Parse +remove+ dsl, it removes current node.
|
283
293
|
# @example
|
284
294
|
# with_node type: 'send', message: { in: %w[puts p] } do
|
285
295
|
# remove
|
@@ -290,7 +300,7 @@ module Synvert::Core
|
|
290
300
|
@current_mutation.remove(@current_node, **options)
|
291
301
|
end
|
292
302
|
|
293
|
-
# Parse +delete+ dsl, it
|
303
|
+
# Parse +delete+ dsl, it deletes child nodes.
|
294
304
|
# @example
|
295
305
|
# # FactoryBot.create(...)
|
296
306
|
# # =>
|
@@ -305,8 +315,7 @@ module Synvert::Core
|
|
305
315
|
@current_mutation.delete(@current_node, *selectors, **options)
|
306
316
|
end
|
307
317
|
|
308
|
-
# Parse +wrap+ dsl, it
|
309
|
-
# wrap current node with code.
|
318
|
+
# Parse +wrap+ dsl, it wraps current node with code.
|
310
319
|
# @example
|
311
320
|
# # class Foobar
|
312
321
|
# # end
|
data/lib/synvert/core/version.rb
CHANGED
@@ -127,10 +127,19 @@ module Synvert::Core
|
|
127
127
|
it 'parses insert_after' do
|
128
128
|
instance.current_mutation = double
|
129
129
|
instance.current_node = double
|
130
|
-
expect(
|
130
|
+
expect(NodeMutation).to receive_message_chain(:adapter, :get_start_loc, :column).and_return(2)
|
131
|
+
expect(instance.current_mutation).to receive(:insert).with(instance.current_node, "\n Foobar", at: 'end')
|
131
132
|
instance.insert_after 'Foobar'
|
132
133
|
end
|
133
134
|
|
135
|
+
it 'parses insert_before' do
|
136
|
+
instance.current_mutation = double
|
137
|
+
instance.current_node = double
|
138
|
+
expect(NodeMutation).to receive_message_chain(:adapter, :get_start_loc, :column).and_return(2)
|
139
|
+
expect(instance.current_mutation).to receive(:insert).with(instance.current_node, "Foobar\n ", at: 'beginning')
|
140
|
+
instance.insert_before 'Foobar'
|
141
|
+
end
|
142
|
+
|
134
143
|
it 'parses replace_erb_stmt_with_expr' do
|
135
144
|
instance.current_mutation = double
|
136
145
|
instance.current_node = double
|
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.
|
4
|
+
version: 1.13.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: 2022-10-
|
11
|
+
date: 2022-10-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|