LoginSignup
18
18

More than 5 years have passed since last update.

rakeをもう1段グレードアップしよう

Posted at

rakeに登録しているタスクなど、処理の実行中・処理の結果を視覚化することで実行する人がより分かりやすく、またミスも防げるようになったりします。
ということで、視覚化するための手法をまとめてみました。別のを思いついたら随時更新していこうと思います。

進行状況をプログレスバー形式で表示

@riocamposさんの進行状況をプログレスバーで表示を使えば簡単に実装できます。べんり。

エラーメッセージを赤で表示

エラーメッセージを赤く表示することで、視覚的にもエラーだと分かりやすくなります。
bashを使っているのであれば、\e[31m\e[0mで囲むと文字が赤くすることができます(コマンドプロンプトは違うみたいです)。

printf "\e[31mここにメッセージを書く\e[0m\n"

ちなみに下記のコードを使えば他の文字色も可能です。

# 文字色を変える
"\e[30m" # Black
"\e[31m" # Red
"\e[32m" # Green
"\e[33m" # Yellow
"\e[34m" # Blue
"\e[35m" # Purple
"\e[36m" # Cyan
"\e[37m" # White

# 太字にする
"\e[1;30m" # Black
"\e[1;31m" # Red
"\e[1;32m" # Green
"\e[1;33m" # Yellow
"\e[1;34m" # Blue
"\e[1;35m" # Purple
"\e[1;36m" # Cyan
"\e[1;37m" # White

# アンダーラインを付ける
"\e[4;30m" # Black
"\e[4;31m" # Red
"\e[4;32m" # Green
"\e[4;33m" # Yellow
"\e[4;34m" # Blue
"\e[4;35m" # Purple
"\e[4;36m" # Cyan
"\e[4;37m" # White

# 背景色を付ける
"\e[40m"   # Black
"\e[41m"   # Red
"\e[42m"   # Green
"\e[43m"   # Yellow
"\e[44m"   # Blue
"\e[45m"   # Purple
"\e[46m"   # Cyan
"\e[47m"   # White

# 元の色に戻す
"\e[0m"

色のサンプルです。背景が黒なので黒文字が見えないですが。。。

アクセス中を bundle install形式で表示

bundle installするときに表示されるFetchingのような、サイトにアクセスしてデータを取得中という表示をするにはこんな感じです。

t = Thread.new do
  print "Fetching gem metadata from https://rubygems.org"
  loop do
    sleep 0.2
    print "."
  end
end

sleep 3 # たとえばアクセスとかの重い処理
t.kill
puts "", "access done!"

これは完全に自己満足ですが、まあなんか動いてるんだなくらいに思ってもらえれば。

ローディング中を npm install形式で表示

npm installするときに表示されるローディングのような表示をするにはこんな感じです。

t = Thread.new do
  load = ["-", "\\", "|", "/"]
  (1..Float::INFINITY).lazy.map { |n|
    sleep 0.06
    "#{load[n % 4]}\r"
  }.each{ |str| print str }
end

sleep 3 # たとえばアクセスとかの重い処理
t.kill
puts "finish loading!"

これも賑やかし程度に使うと吉ですかね。

18
18
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
18
18