こんにちは、hachi8833です。今回の翻訳記事ではRailsで役に立つ19のgemを紹介しています。以下の関連記事もどうぞ。
概要
原著者より許諾をいただいて翻訳・公開します。
- 元記事: 19 Ruby on Rails Gems which Can Amaze(2017/04/12公開、2017/06/06更新)
- 著者: Rubyroid Labsチーム
- サイト: RubyroidLabs.com
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 Batesがcancanプロジェクトでの活動を停止して以来、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サイトを保護できます。
18. Friendly ID
リポジトリ: norman/friendly_id
Friendly ID gemは、URLの無味乾燥なID部分に対してわかりやすいスラッグ(slug)を生成し、リンクをパーソナライズして使いやすくします。設定は簡単で、コミュニティのサポートも熱心です。このgemはslugの履歴を保存し、ページを検索エンジン向けに保存してくれるので、slug生成の戦略を柔軟に立てることができます。
19. GeoCoder
リポジトリ: alexreisner/geocoder
GeoCoderは使いやすさと効率の良さを兼ね備えてたツールです。IP、位置情報、地名で住所を簡単に検索できます。シンプルかつ動作も軽快で、満足のゆく結果を得られます。
この記事が皆さまのお役に立ちますように。お気に入りのgemが他にもありましたら(元記事の)コメント欄までぜひどうぞ。
訳注
以下の記事もどうぞ。