Skip to content

Commit 1357b9a

Browse files
committed
add ruby/prefer-endless-method snippet
1 parent b41909b commit 1357b9a

File tree

2 files changed

+45
-0
lines changed

2 files changed

+45
-0
lines changed

lib/ruby/prefer-endless-method.rb

+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# frozen_string_literal: true
2+
3+
Synvert::Rewriter.new 'ruby', 'prefer-endless-method' do
4+
configure(parser: Synvert::PRISM_PARSER)
5+
6+
description <<~EOS
7+
It prefers endless method.
8+
9+
```ruby
10+
def one_plus_one
11+
1 + 1
12+
end
13+
```
14+
15+
=>
16+
17+
```ruby
18+
def one_plus_one = 1 + 1
19+
```
20+
EOS
21+
22+
within_files Synvert::ALL_RUBY_FILES + Synvert::ALL_RAKE_FILES do
23+
find_node '.def_node[body!=nil][body.body.length=1]' do
24+
replace_with 'def {{name}} = {{body}}'
25+
end
26+
end
27+
end
+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# frozen_string_literal: true
2+
3+
require 'spec_helper'
4+
5+
RSpec.describe 'Prefer endless method' do
6+
let(:rewriter_name) { 'ruby/prefer-endless-method' }
7+
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
16+
17+
include_examples 'convertable'
18+
end

0 commit comments

Comments
 (0)