13
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

bashスクリプトをツール一発でキレイに整形する

Last updated at Posted at 2015-01-29

bashスクリプトのインデントがぐちゃぐちゃになってウンザリという時に、ツール一発で簡単にキレイにしてくれるものを探していたら、beautify_bashを見つけた。

早速使ってみたところ、想定しているRubyのバージョンが古いらしく、Stringに対するeachメソッドが存在しないというエラーが。

undefined method `each' for data:String (NoMethodError)

ちょっと調べてみたところ、Ruby1.9からeachメソッドは廃止されたとのこと

ということで、エラーになっている部分をeach_lineメソッドに書き換えたところ、ちゃんと動くようになり、bashスクリプトの整形も期待していた動作をしてくれるようになった。
bashスクリプトをgitレポジトリにpushしたときに自動的にこのスクリプトを適用するようにしておけば幸せになれそうだ。

diffはこちら。

beautify.rb
diff --git a/beautify_bash.rb b/beautify_bash.rb
index 601ca5e..d0b0f9e 100644
--- a/beautify_bash.rb
+++ b/beautify_bash.rb
@@ -42,7 +42,7 @@ module BeautifyBash
       ext_quote_string = ""
       here_string = ""
       output = []
-      data.each do |record|
+      data.each_line do |record|
          record.chomp!
          stripped_record = record.strip
          if(in_here_doc)

ついでにgithubにもあげておいた。

13
12
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
13
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?