Skip to content

Commit 7c555c9

Browse files
committed
fix endless method with proper indent
1 parent 2c3541a commit 7c555c9

File tree

2 files changed

+35
-10
lines changed

2 files changed

+35
-10
lines changed

lib/ruby/prefer-endless-method.rb

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,12 @@ def one_plus_one = 1 + 1
1919
```
2020
EOS
2121

22+
if_ruby '3.0'
23+
2224
within_files Synvert::ALL_RUBY_FILES + Synvert::ALL_RAKE_FILES do
2325
find_node '.def_node[body!=nil][body.body.length=1]' do
24-
replace_with 'def {{name}} = {{body}}'
26+
new_body = dedent(node.body.to_source)
27+
replace_with "def {{name}}{{lparen}}{{parameters}}{{rparen}} = #{new_body}"
2528
end
2629
end
2730
end

spec/ruby/prefer-endless-method_spec.rb

Lines changed: 31 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,36 @@
55
RSpec.describe 'Prefer endless method' do
66
let(:rewriter_name) { 'ruby/prefer-endless-method' }
77
let(:fake_file_path) { 'foobar.rb' }
8-
let(:test_content) { <<~EOS }
9-
def one_plus_one
10-
1 + 1
11-
end
12-
EOS
13-
let(:test_rewritten_content) { <<~EOS }
14-
def one_plus_one = 1 + 1
15-
EOS
168

17-
include_examples 'convertable'
9+
context 'expression' do
10+
let(:test_content) { <<~EOS }
11+
def one_plus_one
12+
1 + 1
13+
end
14+
EOS
15+
let(:test_rewritten_content) { <<~EOS }
16+
def one_plus_one = 1 + 1
17+
EOS
18+
19+
include_examples 'convertable'
20+
end
21+
22+
context 'block call' do
23+
let(:test_content) { <<~EOS }
24+
def existing_key(device)
25+
transaction do
26+
key = device.one_time_keys.order(Arel.sql('random()')).first!
27+
key.destroy!
28+
end
29+
end
30+
EOS
31+
let(:test_rewritten_content) { <<~EOS }
32+
def existing_key(device) = transaction do
33+
key = device.one_time_keys.order(Arel.sql('random()')).first!
34+
key.destroy!
35+
end
36+
EOS
37+
38+
include_examples 'convertable'
39+
end
1840
end

0 commit comments

Comments
 (0)