Ruby
Gem

Railsで使いたい便利なgemまとめ

More than 3 years have passed since last update.

最近、実際に使っていて便利だと思ったものをまとめて紹介します!
他にも便利なものがいっぱいあって迷いましたが、とりあえず今回は7つに絞って紹介します!

【1】Better Errors

https://github.com/charliesome/better_errors

Rails のエラー画面をわかりやすく

Better Errors は標準のRails エラーページをさらに使いやすいエラーページに置き換えてくれます。

Rails の標準のエラー画面はこんな感じ↓ですが、

スクリーンショット 2014-06-13 10.55.35.png

Gemfile に Better Errors を書き加えてインストールすると、
こんな感じ↓の画面に変えてくれます。

スクリーンショット 2014-06-13 10.58.45.png

どこでエラーが起こっているのか表示してくれるので、エラーを見つけるのに役立ちます。

Rails のほかにも、Rack ミドルウェアとしての Rack app で使うのにも適しているそうです。

次の binding_of_caller とセットで使うととっても便利です。

【2】binding_of_caller

https://github.com/banister/binding_of_caller

Better Errors のエラー画面でそのままデバッグ

binding_of_caller は Better Errors のオプションの gem で、
エラーが起こったときに、エラー画面上でそのままデバッグができるようになります。
(Better Errors は単体でも使うことができます。)

スクリーンショット_2014-06-13_11_01_01.png

エラー画面が出てすぐ、おかしいなと思ったところを確かめられるので、デバッグが捗ります。

ローカル変数やインスタンス変数の情報も表示してくれます。

セキュリティ上危険なため、デバッグ環境だけで使うことが推奨されています。

【3】pry-byebug

https://github.com/deivid-rodriguez/pry-byebug

binding.pry と入力したところで、デバッガーを立ち上げてくれる

ソースコードのデバッグしたい部分に binding.pry と書くと、テストプログラムの実行をそこで止めてくれてデバッグできるようになります。

def some_method
  hoge = 'Hello'
  binding.pry  ←ここでストップする
  hoge = 'Hello, World'
  puts hoge
end

この状態で、 hoge の内容を確かめると 'Hello' になっています。

next (または n )と入力すると、次の行に移動できるので、
next と2回入力します。

def some_method
  hoge = 'Hello'
  binding.pry
  hoge = 'Hello, World'
  puts hoge  ← next 2回入力で、ここまで移動する
end

そうすると、hoge = 'Hello, World' が実行されるので、
hoge の中身は 'Hello, World' になります。

continue (または c )と入力して、処理の続きを再開することができます。

このように、一行ずつプログラムを実行しながらのデバッグができます。

プログラムを途中で止めたまま、コードのチェックをできるので、プログラム実行途中での変数に格納された値の確認などに重宝しています。

【4】SimpleCov

https://github.com/colszowka/simplecov

簡単にカバレッジを取得する

SimpleCov は、たった2〜3行のコードでセットアップできてしまう、手軽に使えるカバレッジツールです。

設定は、 spec/spec_helper.rb ファイルに以下を追加と、

require 'simplecov'
SimpleCov.start

.gitignore ファイルに、coverage を追加しておけば OK です。

RSpec のテストを流すと、こんな風に、テストの最後にカバレッジを表示してくれます。

Finished in 1.11 seconds
31 examples, 0 failures

Randomized with seed 21053

Coverage report generated for RSpec to /Users/me/Documents/workspace/app/coverage. 37144 / 78888 LOC (47.08%) covered.

また、アプリケーションのルートディレクトリに自動的に生成される coverage/index.html を表示すると、カバレッジの詳細を確認することができます。

スクリーンショット_2014-06-13_20_44_18.png

ファイルを検索できるので、特定のファイルのカバレッジもさくっと確認できます。

【5】Quiet Assets

https://github.com/evrone/quiet_assets

Rails asset pipeline log を省略

Quiet Assets は Rails asset pipeline ログを隠して、ログメッセージを簡潔にします。

Rails 3.1 以降で動きます。

【6】Letter Opener Web

https://github.com/fgrehm/letter_opener_web

テスト送信したメールをブラウザで簡単にチェック

Letter Opener にブラウザで見れる機能を追加したもの。

メールを実際に送信する代わりに、ブラウザで http://localhost:3000/letter_opener にアクセスするだけで、テスト送信したメールの情報を見ることができるようになります。

development 環境での email 関連のセットアップをする必要もないので、
開発段階のメール機能のチェックにとても便利です。

スクリーンショット_2014-06-16_11_07_48.png

【7】rack-mini-profiler

https://github.com/MiniProfiler/rack-mini-profiler

画面の左上に小さく、画面の処理時間を表示

とにかく小さく、アプリケーションの画面の邪魔にならないように、処理にかかった時間を表示してくれます。

スクリーンショット_2014-06-13_14_44_51.png

秒数の部分をクリックすると、詳細が見られるので、どこで処理に時間がかかってしまっているのかが簡単にわかります。

production と development、どちらの環境でも動くようにデザインされています。