Ruby on Rails の開発をしていると、後で有用なGem が見つかったりするので、どういうGem が出ているかをまとめてみました。
多いので抜粋です。
#The Ruby Toolbox
Ruby や Ruby on Rails で使える gem や tool 集です。
The Ruby Toolbox
##Active Record Plugin
データベース周り。
データベースとの接続から、得られたデーターのページネーション、タグ付けなどを行える。
##Background Processing
非同期実行やスケジュール実行など、バックグラウンドで処理するためのgem。
##Communication
主にメール関連。同期 or 非同期メール送信のほかにも色々あります。
######E-Mail Processing
メール受信時にデータベースへ保存するなどの受信時処理
######E-Mail Preview
送信結果をブラウザなどで簡単に確認できる開発者向けツール
######CRM Apps, Forum Systems
顧客管理システム、フォーラム管理システムもこのカテゴリーに入ります。
######IRC bots
IRC というチャットプロトコルを使った、自動応答。IRC で何かメッセージを送ると、その投げかけに応じた処理をしてくれる。
メッセージは正規表現でマッチングできるので、自由度の高いメッセージに対応できる。
##Content Management & Blogging
いわゆるCMS関連です。ブラウザから簡単にウェブページやブログを管理、編集できるようになります。
######Blog Engines
ブログ機能を追加します。blogitをなどを使えば、サイトマップの作成やRSS、SNSシェアなどの導入が容易になります。Octopressを使えば、Mrakdown形式のブログ、ウェブページを簡単に下書き、公開、非公開にできます。
######Static Website Generation
データベースとのやり取りのない、静的ページを作ります。Jekyll は、上記のOctopressで、静的ページ作成に使われています。
##Data Persistence
データベースとのやり取りで、データの形式(JSONとかカンマ区切りとかオブジェクトとか) をうまく合うようにしてくれます。
##Developer Tools
開発者向けツール。デバッグとかエラー表示とか。
##Documentation Tools
開発したプログラムに関するドキュメントを作ってくれる。
##Documents & Reports
PDF ファイルの生成、読み込んでデータを抽出してくれる。
##E-Commerce and Payments
オンラインショップのためのツール。オンラインショップ作成&管理ツール、お金まわりのツールなど。
##Fun
######Game libraries
ゲーム構築のライブラリ。
Gosu (2Dゲームライブラリ) 作成例はこちら。マリオのようなもの。
Gem Collector: Ruby game made with Gosu - YouTube
######Music & MIDI
何個かありますが、あまり更新されていないようです。
##Graphics
######Graphing
Javascriptグラフが描画できます。
例えば、chartkickを使えば、たった一行、
<%= line_chart User.group_by_day(:created_at).count %>
で、モデルクラスから線グラフが出来ます。
######Image Processing
画像処理ライブラリ。サムネイルの作成やリサイズなど、よく使う機能。
chunky_png, RMagick, MiniMagickあたりが有名どころ。
######QR Codes
QRコードを作成する。
######Visualizing Data
グラフ描画ですが、Graphingのカテゴリーのようなエクセルなどでよく使うようなものではなく、グラフ理論で使うグラフで、物事の関係性を表したりするものです。
ruby-graphvizは、graphvizを使って実現します。
##HTML & Markup
パンくずリスト、メニュー、入力フォーム、テーブルなどを生成するツール。また、Haml や Simlのような、HTMLコーディングをシンプルにするテンプレートエンジンもこのカテゴリ。
サンプルコードを記載するときに、その言語に合わせたシンタックスハイライトを追加するcoderayを使えば、
CodeRay.scan_file('hello.rb').html
というような記述で、シンタックスハイライトが追加できる。
##Maintenance & Monitoring
######App Instrumentation
サーバーの監視機能を追加する。
例えばnewrelic_rpmを使えば、レスポンスタイムなどの、各種パフォーマンスに関する統計情報をNew Relicのサイトから見られるようになります。監視サーバーの準備も要りません。
AWS上で使いたい場合は、こちらを"AWS登録前に"参考にすると無料で使えます。
######Server Monitoring
サーバーが正常動作しているかを監視。
##Testing
######A/B Testing
二つのViewを作って、その違いを見るためのツール。
2つであったり、場合によっては複数個のデザインがあったとして、どちらがより成果(購入してくれる、公告をクリックしてくれる、など)に繋がるの?という議論を、自分らでやるんじゃなく、実際にサイトユーザーにランダムに見てもらって、結果、どちらが成果でたか?を判断するツール。
これに関したこの記事はとてもおもしろいです。
A/Bテストよりすごい?バンディットアルゴリズムとは一体何者か
##Web Apps, Services & Interaction
他のサービスとのやり取りするためのツール。ツイッターなどとのAPI通信、自身のサービスのAPI作成、受信したウェブページの解析、RSSフィードなど多岐にわたる。
サーバー間のやり取りとしては、SOAP や JSON もある。