LoginSignup
2
0

More than 1 year has passed since last update.

Rubyのハッシュロケット記法{ :key => value } を{ key: value } に一括で修正する方法(erubis, hamlも含む)

Last updated at Posted at 2022-02-17

Rubyファイル

Rubyファイルの場合、rubocopのコマンドで一気になおせます
(rubocop のインストールは gem install rubocop

rubocop --only Style/HashSyntax -a

-a オプションが自動適用なので、これを外すとどのように修正されるかを確認することができます

erubis ファイル

erubisファイルの場合、erb-lintを使う必要があります。
(インストールは gem install erb_lint)

以下のような yaml を ~/.erb-lint_only_hash_syntax.yml として定義し

---
glob: "**/*.{html,text,js}{+*,}.{erb,erubis}"
EnableDefaultLinters: false
linters:
  Rubocop:
    enabled: true
    only:
      - Style/HashSyntax

views 以下にerubisファイルがある場合は、以下のようなコマンドを実行します

erblint --config ~/.erb-lint_only_hash_syntax.yml -a views/**

-a オプションが自動適用なので、これを外すとどのように修正されるかを確認することができます

haml

ruby, erubis のような便利なコマンドがないので、正規表現でなおします

:([_a-z]+)\s*=> -> $1:

参考:Ruby, rubocop, erb-lint のバージョン

記事執筆時で利用しているバージョンを書いておきます

$ ruby -v
ruby 2.6.9p207 (2021-11-24 revision 67954) [x86_64-linux]
$ rubocop -v
1.25.1
$ erblint -v
0.1.1
2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0