Ruby on Railsで使ってうれしい19のgem(翻訳)

こんにちは、hachi8833です。今回の翻訳記事ではRailsで役に立つ19のgemを紹介しています。以下の関連記事もどうぞ。

概要

原著者より許諾をいただいて翻訳・公開します。

Ruby on Railsで使ってうれしい19のgem(翻訳)

Ruby on Railsの素晴らしさはgemのおかげでもあります。私たちが使ってみてよいと思った19のgemの情報をここに公開いたします。

1. Ransack

リポジトリ: activerecord-hackery/ransack

Ransack gemは使いやすい検索APIを簡単に導入できます。あらゆる種類のRuby on Railsアプリでシンプルな検索フォームを構築でき、定番の検索機能をすばやく簡単に導入できるよう設計されています。もっと凝った検索フォームが必要な場合は、ActiveRecordのスコープを使って手動で構築する必要があるでしょう。

2. Pry

リポジトリ: pry/pry

PryはもうひとつのRuby IRBであり、ランタイムの開発コンソールです。とても使いやすいデバッグ機能のおかげでRubyroid Labsチーム一同が幸せになれました。ターミナル上でコードのブレークポイントを直接表示することもできますし、コードの実行を次へ進める方法もよくできています。awesome_print gemとの連携も見逃せないワンポイントです。

3. Pundit

リポジトリ: elabs/pundit

かのRyan Batescancanプロジェクトでの活動を停止して以来、authorization(承認・アクセス管理)の第一候補に浮かび上がってきたのはPundit gemです。Rubyroid Labsチームは、このgemが通常のRubyクラスとオブジェクト指向デザインパターンを強化する点を非常に愛しています。Punditではメタプログラミングの黒魔術を使わず、すべて純粋なRubyオブジェクトをベースにしているので、非常に使いやすくかつ高効率で、特にRuby on Railsの初心者にも向いています。

参考: インタビュー Railsでコーディングを始めるには(Rubyroid Labs記事)

4. Active Model Serializers

リポジトリ: rails-api/active_model_serializers

ActiveModelSerializers gem は、「設定より規約」に沿ってJSONを生成するのに役立つ2つのコンポーネント「シリアライザ」「アダプタ」を導入します。DSLがよくできているうえ、クラスごとのシリアライズが高速なので、私たちは他のgemよりこれを愛好しています。jbuilderによるJSONレンダリングの遅さが問題になるようなら、ぜひこのgemをお試しください。

参考: 気をつけないとトラブルの元になるかもしれないgem 5+1種(Rubyroid Labs記事)

5. Devise Masquerade

リポジトリ: oivoodoo/devise_masquerade

Devise Masqueradeは、Devise gemユーザーにとって本物の宝といえるgemです。別のユーザーとしてログインすることで、特にデバッグがはかどるようになりますし、システム管理者に全権をゆだねることもできます。

6. Wicked PDF

リポジトリ: mileszs/wicked_pdf

HTMLコードからPDFファイルを生成したい場合、Railsコミュニティでの選択肢はそれほど多くありません。しかしwicked_pdfなら十分な働きをしてくれると私たちは確信しています。Widked PDFの長所は、構成が柔軟でJSやCSSとも統合されている点です。このgemは追加や設定が簡単で、多くの手間をはぶけます。

wicked_pdfはwkhtmltopdfツールのラッパーなので、wkhtmltopdfのインストールが必要です。利用の際には、wkhtmltopdf-binary-edgeをインストールしたうえで、チーム全体でwkhtmltopdf-binary-edgのバージョンを揃えておくことをおすすめします。

7. Letter Opener

リポジトリ: ryanb/letter_opener

Letter Openerは開発者向けの素晴らしいライブラリです。メール送信のエミュレーションはもちろん、メール送信をブラウザで自動確認することもできます。これにより、development環境でメール配信を設定せずに済み、テストメールを誤って送信してしまう心配をせずに済みます。

8. Roadie

リポジトリ: Mange/roadie

HTMLメールの作成はつらい作業です。Roadie gemではあらゆるインラインスタイルシートが使え、相対URLを自動で書き換えてくれるので、つらさの大部分を解消してくれます。Roadie gemで、日々の開発をもっと楽しいものにしましょう。

9. Sitemap Generator

リポジトリ: kjvarga/sitemap_generator

サイトマップの作成は、SEOの基本作業のひとつです。

参考: 3年以内に習得しておきたいWebプロジェクト10のポイント(Rubyroid Labs記事)

Google検索でサイトがすぐ表示されるためには、適切なサイトマップが不可欠です。このgemは、検索可能な全リンクのサイトマップを作成するのみならず、更新を検索エンジンに通知してくれます。

10. VCR

リポジトリ: vcr/vcr

VCR gemはテストスイートでのHTTPのリクエスト/レスポンスを記録し、以後テストを実行しながら再生します。VCRでは、開発者が(訳注:モックなどで)作ったレスポンスではなく、サービスが実際に出力したレスポンスを使うので、デバッグ効率全体を大きく向上でき、より実際に近い動作を把握できるようになります。

11. Retryable

リポジトリ: nfedyashev/retryable

特にネットワーク越しに外部のレガシーAPIにアクセスすると、これといった理由もないのにリクエストが失敗することがたまにあります。こんなときはリクエストを数回繰り返して、今度こそうまくいくよう祈るぐらいしかありませんでした。この程度のロジックならどんな開発者でも自作できますが、私たちならretryable gemで時間を節約して顧客に喜んでもらう方を選びます。このgemで提供されるシンプルなAPIは、例外発生で詰まるあらゆる部分をリトライしてくれます。

12. Carrierwave

リポジトリ: carrierwaveuploader/carrierwave

CarrierwaveはRuby on Railsの画像処理gemとして非常に有名です。開発時にわずかな手間をかけるだけで、画像を指定のサイズで作成できます。設定も柔軟に行えるので、ほぼあらゆるビジネスニーズに応用できます。

13. Groupdate

リポジトリ: ankane/groupdate

Groupdateは、特定期間のイベントをグループ化するgemです。これを使って、任意の期間の集合についての操作の統計を取ることができます。たとえば「昨日の登録ユーザーが何人か」「製品が年初以来何ユニット売れたか」といった情報を得られます。APIが使いやすいのもさらにありがたい点です。

14. Chartkick

リポジトリ: ankane/chartkick

Chartkickは、わずか1行のRubyコードだけで華麗なJavaScriptチャートを最も簡単に生成できます。円グラフ、折れ線グラフ、面グラフといったあらゆるチャートがこのgemに含まれています。

Chartkickには上述のGroupdate gemも組み込まれているので、期間処理も心配ありません。

15. Apartment

リポジトリ: influitive/apartment

Apartment gemは、複数のテナントを扱える拡張データベースを提供する控えめなgemです。データをアカウント単位や企業単位で隔離しつつ、テナントが共通のデータも使えるようにしたい場合に非常に有用です。必要な機能はひととおり揃っており、ロジックも使いやすく洗練されています。

16. Money Rails

リポジトリ: RubyMoney/money-rails

Money Railsは、通貨変換を行うEコマースプロジェクトにうってつけのgemです。

参考: Ruby on Railsツール紹介: Money Rails(Rubyroid Labs記事)

Money Railsは面倒な準備なしにほとんどのアプリで幅広い用途に利用できます。シンプルかつ柔軟なAPIのおかげで、どんな用途にも簡単に応用できます。

17. Rack Attack

リポジトリ: kickstarter/rack-attack

Rack Attack gemはDDoS攻撃者と戦うアベンジャーズです。パスワードの奪取や単純なDDoSといった基本的な攻撃に対抗するツールが多数搭載されています。

リクエストのあらゆるプロパティに基づいたセーフリスト、ブロックリスト、スロットル(絞り込み)、トラッキングを使って、Webサイトを保護できます。

訳注: TechRacho記事: [Rails] rack-attack gemでRack middlewareレベルのアクセス制限を実施するもどうぞ。

18. Friendly ID

リポジトリ: norman/friendly_id

Friendly ID gemは、URLの無味乾燥なID部分に対してわかりやすいスラッグ(slug)を生成し、リンクをパーソナライズして使いやすくします。設定は簡単で、コミュニティのサポートも熱心です。このgemはslugの履歴を保存し、ページを検索エンジン向けに保存してくれるので、slug生成の戦略を柔軟に立てることができます。

19. GeoCoder

リポジトリ: alexreisner/geocoder

GeoCoderは使いやすさと効率の良さを兼ね備えてたツールです。IP、位置情報、地名で住所を簡単に検索できます。シンプルかつ動作も軽快で、満足のゆく結果を得られます。


この記事が皆さまのお役に立ちますように。お気に入りのgemが他にもありましたら(元記事の)コメント欄までぜひどうぞ。

関連記事

Ruby on RailsによるWEBシステム開発、Android/iPhoneアプリ開発、電子書籍配信のことならお任せください この記事を書いた人と働こう! Ruby on Rails の開発なら実績豊富なBPS

この記事の著者

hachi8833

Twitter: @hachi8833、GitHub: @hachi8833 コボラー、ITコンサル、ローカライズ業界、Rails開発を経てTechRachoの編集・記事作成を担当。 これまでにRuby on Rails チュートリアル第2版の半分ほど、Railsガイドの初期翻訳ではほぼすべてを翻訳。その後も折に触れてそれぞれ一部を翻訳。 かと思うと、正規表現の粋を尽くした日本語エラーチェックサービス enno.jpを運営。 実は最近Go言語が好き。 仕事に関係ないすっとこブログ「あけてくれ」は2000年頃から多少の中断をはさんで継続、現在はnote.muに移転。

hachi8833の書いた記事

週刊Railsウォッチ

インフラ

BigBinary記事より

ActiveSupport探訪シリーズ