File tree 1 file changed +8
-8
lines changed
1 file changed +8
-8
lines changed Original file line number Diff line number Diff line change 1
1
# frozen_string_literal: true
2
2
3
3
Synvert ::Rewriter . new 'ruby' , 'map_and_flatten_to_flat_map' do
4
- configure ( parser : Synvert ::PARSER_PARSER )
4
+ configure ( parser : Synvert ::PRISM_PARSER )
5
5
6
6
description <<~EOS
7
7
It converts `map` and `flatten` to `flat_map`
8
8
9
9
```ruby
10
- enum.map do
10
+ enum.map do |item|
11
11
# do something
12
12
end.flatten
13
13
```
14
14
15
15
=>
16
16
17
17
```ruby
18
- enum.flat_map do
18
+ enum.flat_map do |item|
19
19
# do something
20
20
end
21
21
```
22
22
EOS
23
23
24
24
within_files Synvert ::ALL_RUBY_FILES + Synvert ::ALL_RAKE_FILES do
25
- # enum.map do
25
+ # enum.map do |item|
26
26
# # do something
27
27
# end.flatten
28
28
# =>
29
- # enum.flat_map do
29
+ # enum.flat_map do |item|
30
30
# # do something
31
31
# end
32
- find_node '.send [receiver=.block [caller=.send[message=map]]] [message =flatten] [arguments.size=0 ]' do
32
+ find_node '.call_node [receiver=.call_node[name=map][arguments=nil][block=.block_node]][name =flatten][arguments=nil ]' do
33
33
group do
34
- delete :message , :dot
35
- replace 'receiver.caller.message ' , with : 'flat_map'
34
+ delete :call_operator , :name
35
+ replace 'receiver.name ' , with : 'flat_map'
36
36
end
37
37
end
38
38
end
You can’t perform that action at this time.
0 commit comments