今年は複数の大型開発にたちさわることができましたが、その時にお世話になったGemの一覧を共有します。
Active Admin
管理ツールといえばこれですね。拡張性もあるし、多言語対応しているし、見た目綺麗だし、現在も開発が進められている素敵なGem。Octopusとかと相性が悪くて多少苦戦しましたが、管理画面に消費する時間を大幅に短縮してくれました。ただ最新のドキュメントが不足しているのでソースを直接読むケースがしばしば・・・。
annotate_models
データベースのテーブル名やカラム情報をモデルの中にコメントとして追加してくれるGemです。
マイグレーションファイルを見ずにデータベース側の構造が把握できるのはとてもありがたいです。
migration_comments を使うとマイグレーションファイルに追加したコメントも一緒に出力されてさらに良い感じです。以下のような感じで出力されます。
# Table name: accounts
#
# id :integer not null, primary key
# nickname :string(255) default("unknown") # ユーザー名
# last_accessed_at :datetime # 最終アクセス時間
globalize
DBの翻訳を楽にしてくれるGem。Rooと組み合わせてエクセルから自動的に翻訳データをDBに流し込むようにすればいい感じのローカライゼーションフローができあがります。
capistrano-rails
サーバーにデプロイするときにお世話になってるGem。Jenkinsさんと組み合わせると最強。
エンジニアなしでデプロイができるようになったりします。
airbrusshというGemと組み合わせるとログも綺麗になるのでこちらもおすすめです。
whenever
cronjobに登録する内容をRails側で書けるようにしてくれるGemです。
これを使うまでは、デプロイ時にjobの登録を忘れたり、古いものを外すのを忘れたりと問題だらけでしたが、これを使うようになってからは、機能追加や削除するコミットと同時に編集できるようになったのでそういった問題が発生しなくなりました。
simplecov
テストのカバレージ率を算出して出力してくれるツールです。文句なしの超便利Gemです。
Roo
xlsxファイルをインポートするためのGemです。マスターデータや他の部署の人とかが記入した資料を取り込んだりする時に便利です。
turnout
サーバーをメンテナンス状態にして外部からサイトにアクセスできなくしてくれるGemです。Capistranoとも相性がよくて使いやすいです。
stethoscope
サーバーにハートビート機能を追加してくれるGemです。
Rackのミドルウェアなので、Railsで実装した時のオーバーヘッドとかもなく、パフォーマンス面なども考慮されている素敵なGemです。
ar-octopus
Railsにシャーディングやレプリケーション機能を追加してくれるGemです。拡張性を考慮しないといけない開発には欠かせません。ただ、特性上仕方がないことではあるのですが、かなりクセのあるGemです。故にActiveRecord内部の知識がある程度求められます。使用する場合、ActiveRecord系のGemとの相性を確認しながら慎重に導入することをお勧めします。
term-ansicolor
ANSIエスケープシーケンスを使って文字列に色を追加することが可能になるGemです。自分で書いたログ出力などに色をつけるのに使いました。やっぱり色つけるとログが見やすいですよ。いやほんとに。
activerecord-colored_log_subscriber
Rails 5で実装されたコマンド別ログ色付けをバックポートできるようにGemに切り出したやつです。
SELECT=青、INSERT=緑、UPDATE=黄、DELETE=赤 みたいな感じでコマンド別に色がつくようになります。ログが見やすくなり、解析がはかどります。
あと、余談ですが自分が書いたアルファニュメリックなID自動生成Gem、alphanumeric_randomもよろしくです。