synvert-rubyを使ってみる

こんにちは、tsuka05です。

synvert-ruby はRubyのコードを構文解析して、自動的に書き換えを行なってくれるツールです。

様々なsnippetが用意されていて、決まりきったコード書き換えが簡単にできます。

synvert-ruby -l

で、snippetを一覧することができます。

例えば、

synvert-ruby -r rails/convert_after_commit

とすると、Railsアプリケーションのコードを下記のように書き換えてくれます。

書き換え前

after_commit :add_to_index_later, on: :create
after_commit :update_in_index_later, on: :update
after_commit :remove_from_index_later, on: :destroy
after_commit :add_to_index_later, on: [:create]
after_commit :update_in_index_later, on: [:update]
after_commit :save_to_index_later, on: [:create, :update]
after_commit :remove_from_index_later, on: [:destroy]

書き換え後

after_create_commit :add_to_index_later
after_update_commit :update_in_index_later
after_detroy_commit :remove_from_index_later
after_create_commit :add_to_index_later
after_update_commit :update_in_index_later
after_save_commit :save_to_index_later
after_detroy_commit :remove_from_index_later

Ruby 3.4で入る暗黙のブロックパラメータitにも対応しています。

synvert-ruby -r ruby/use_it_keyword

書き換え前

(1...10).map { |num| num ** 2 }
(1...10).map { _1 ** 2 }

書き換え後

(1...10).map { it ** 2 }
(1...10).map { it ** 2 }

その他、Rubyのバージョンアップの際に必要となる書き換えなどにも対応していたりするので、機会があれば使ってみてはいかがでしょうか。