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

こんにちは、hachi8833です。今回の翻訳記事ではRailsで役に立つ19のgemを紹介しています。以下の関連記事もどうぞ。 [Rails 5] rails newで常に使いたい厳選・定番gemリスト(2017年版) [Rails 5]実は不要なgem・使われなくなりつつあるgem(2017年版) 概要 原著者より許諾をいただいて翻訳・公開します。 元記事: 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サイトを保護できます。 訳注: TechRacho記事: [Rails] rack-attack gemでRack middlewareレベルのアクセス制限を実施するもどうぞ。 … Continue reading Ruby on Railsで使ってうれしい19のgem(翻訳)