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

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


# 【1】Better Errors
https://github.com/charliesome/better_errors

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

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

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

![スクリーンショット 2014-06-13 10.55.35.png](https://qiita-image-store.s3.amazonaws.com/0/12033/1fbb6742-dc7d-92ed-e460-ee8603b18ed2.png)

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

![スクリーンショット 2014-06-13 10.58.45.png](https://qiita-image-store.s3.amazonaws.com/0/12033/118a0685-2e1a-0ac0-43d1-efe37ccf7346.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](https://qiita-image-store.s3.amazonaws.com/0/12033/a446db97-ee30-4ea3-d4e7-7d7aad57b4f6.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](https://qiita-image-store.s3.amazonaws.com/0/12033/f0f1e36d-38a9-b98a-1a0a-7144e1368d09.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](https://qiita-image-store.s3.amazonaws.com/0/12033/739cd2d0-5384-9c1d-a8a5-6dac07e572b7.png)


# 【7】rack-mini-profiler
https://github.com/MiniProfiler/rack-mini-profiler

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

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

![スクリーンショット_2014-06-13_14_44_51.png](https://qiita-image-store.s3.amazonaws.com/0/12033/a3192f89-2822-3c97-49d2-c17ea2a0eb77.png)

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



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

***