LoginSignup
36

More than 5 years have passed since last update.

パーフェクトRuby on Railsに載っていたGem

Posted at

今更感がありますが、
最近Railsはじめたので読んでみました。
gemすげーと思いましたのでメモします。

こういうのを知っているのと知らないでは、かなり違いますね。。
Railsはじめたばかりの方にはオススメの本だと思います。

パーフェクトRuby on Rails

第3章 アセット

Sprockets

Asset Pipelineの基盤となるgem
アセットファイルにアクセスするためのパス管理
アセットのコンパイル
アセットファイル同士の依存生を管理する

CoffeeScript

teaspoon,jasminerice,jasmine-rails

Asset Pipelineを経由したユニットテストをすることができる

Sass

Turbolinks

高速にページ遷移することができる

jquery-turbolinks

Turbolinksで画面遷移した際にも、自動でjQuery.redy()に登録したイベントハンドラを呼び出してくれる

第4章 Railsのロードパスとレイヤーの定義方法

active_decorator

モデルとビューを橋渡しするレイヤーを追加できる

sidekiq

非同期処理を行うライブラリ
※例) 画像アップロード、画像変換、動画の変換処理

第5章 開発を効率化するgem

pry-rails

RailsコンソールでirbではなくPryを利用できるようになる

pry-byebug

ステップ実行でデバッグを行うことができる

Hirb

コンソール上のモデルの出力を整形する

※日本語などのマルチバイト文字が入る場合は
hirb-unicodeを一緒にインストールする

better_errors

例外が発生した際にエラー画面が変更され、スタックトレース、セッショ情報、リクエストパラメータなどが見やすくなる

binding_of_callerと合わせて利用することで、画面上でコマンとを入力し、オブジェクト操作できる

Spring

railsやrakeコマンドが処理を開始する時間が高速化する

※RSpecを実行する場合はspring-commands-rspecというgemを追加する

rails-erd

モデルのER図を生成する

第6章 実践Webアプリケーション開発

twitter-bootstrap-rails

本編ではでは使ってませんでしたがbootstrap導入楽ちんでした

omniauth

ユーザ認証機能を提供してくれる
TwitterのOAuthを利用した認証には「OmniAuth Twitter」を利用する

gem 'omniauth', '~> 1.2.2'
gem 'omniauth-twitter', '~> 1.1.0'

Kaminari

ページネーション機能を作る
bootstrap用に 「kaminari-bootstrap」がある

ransack

モデルの検索インターフェースを簡単に作ることができる

carrierwave

画像アップロード機能を簡単に作ることができる

mini_magick

ImageMagickをRubyから扱うことができる

第7章 Railsアプリケーションのテスト

rspec-rails

RailsのテストフレームワークライブラリのRSpec
インストール後にテストしてみると動かなかったのですが、
こちらに対応方法が書いてありました。

Rails4+RSpec3で新規プロジェクトを作ったときのハマりポイントまとめhttp://qiita.com/youcune/items/3a1e4ef76e71da43e043

 group :development, :test do↲
   gem 'rspec-rails', '~> 3.0.0'↲
 end↲

shoulda-matchers

バリデーションのテストをかなり簡潔に記述できるようになります。

group :test do↲
  gem 'shoulda-matchers', '~> 2.6.0'↲
end↲

fixture replacement

テストのためのモデルオブジェクトを生成してくれます。
カラムの種類が増えたり減ったりした時に便利のようです。

group :development, :test do
  gem 'factory_girl_rails','~> 4.5.0'
end

capybara

エンドツーエンドのテスト

group :test do↲
  gem 'capybara', '~> 2.2.1'↲
end↲

poltergeist

JavaScriptのテスト用
※ poltergeistを使用する場合、テストケースとして実行されるプロセスとは別にサーバ用のプロセスを作成するため、Railsデフォルトのデータベーストランザクション機能は使えないため、「database_cleaner」を使用するそうです。

group :test do↲
  gem 'poltergeist', '~> 1.5.0'↲
  gem 'database_cleaner', '~> 1.2.0'↲
end↲

simplecov

カバレッジを出力する

https://github.com/colszowka/simplecov

brakeman

Railsアプリケーションの脆弱性を英的解析する

第8章 Railsのインフラと運用

chef,berkshelf

設定中に以下のようなエラーが出たが
こちらの記事で無事解決

http://goo.gl/Yc0w3n

$ vagrant provision
==> default: Running provisioner: chef_solo...
Generating chef JSON and uploading...
==> default: Running chef-solo...
==> default: stdin: is not a tty
==> default: [2014-10-28T13:00:43+00:00] INFO: Forking chef instance to converge...
==> default: [2014-10-28T13:00:43+00:00] WARN: 
==> default: * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
==> default: SSL validation of HTTPS requests is disabled. HTTPS connections are still
==> default: encrypted, but chef is not able to detect forged replies or man in the middle
==> default: attacks.
==> default: 
==> default: To fix this issue add an entry like this to your configuration file:
==> default: 
==> default: ```
==> default:   # Verify all HTTPS connections (recommended)
==> default:   ssl_verify_mode :verify_peer
==> default: 
==> default:   # OR, Verify only connections to chef-server
==> default:   verify_api_cert true
==> default: ```
==> default: 
==> default: To check your SSL configuration, or troubleshoot errors, you can use the
==> default: `knife ssl check` command like so:
==> default: 
==> default: ```
==> default:   knife ssl check -c /tmp/vagrant-chef-3/solo.rb
==> default: ```
==> default: 
==> default: * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 

knife-solo

chef-soloに特化したコマンドツール

New Relic

アプリケーションの監視

cinch

IRC Botフレームワーク

Airbrake

エラー通知と解析に特化したSaas
オープンソースのerrbitもあるようです。

serverspec

サーバの状態をテストするためのツール

第10章 Railsを拡張する

Rack

たくさんのアプリケーションサーバとたくさんのRubyフレームワークとをつなぐ規約

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
36