Ruby on Rails

【Ruby on Rails】gemとは?Railsにおけるgemのインストール方法の解説。

どうも、とがみんです。

Rubyには、開発効率を高めてくれる「gem」というシステム、ライブラリがあります。

この記事では、この「gem」とはどういうものなのか、どんな種類があるのか、また、Railsにおいてどのように「gem」をインストールするのかについて紹介していきます。

gemとは?

「gem」とは、Rubyで使用することのできる汎用性の高い機能をひとまとまりにしたライブラリを管理するシステムのことを言い、

また、それぞれのライブラリのことを「gem」とも言います。

この「gem」を活用することによって、あらゆる機能を一から自分で実装する必要がなくなり、必要な機能を簡単に実現することができます。

Rubyのライブラリ「gem」は、

Ruby on Railsの開発環境を構築する際に、この「gem」というシステムを使用しました。


gemの種類

どんな種類のgemがあるのか、ダウンロード数が多い人気のgemをいくつか紹介します。

nokogiri

「nokogiri」というgemは、HTMLやXMLの構造を解析するためのライブラリで、スクレイピングでよく使用されます。

>nokogiri|rubygems.org

activerecord

「activerecord」というgemは、Rubyで書かれたオブジェクト指向のモデルと、リレーショナルデータベースを操作するためのSQLとの関連付けやデータベース検証等を行うためのライブラリです。

>activerecord|rubygems.org

actionpack

「actionpack」というgemは、ブラウザからのリクエストを受け取って、それを処理し、レスポンスを返すといった機能を提供します。

>actionpack|rubygems.org

>RubyOnRails を使ってみる 【第 4 回】 ActionPack

turbolinks

「turbolinks」というgemは、ページ遷移をする際に、ページ全体ではなく、その一部分だけを変更することによって、ページの表示を高速化するためのライブラリです。

>turbolinks|rubygems.org

Device

「Device」というgemは、ログイン認証機能を提供するライブラリです。応用すれば、TwitterログインやFacebookログインも実装することができます。

>Device|rubygems.org

Railsにおけるgem

Ruby on Railsにを使用するにあたって、どんなgemが用意されているのか、

Railsにインストールされているgemの確認

Ruby on Railsにインストールされているgemを確認するためには、以下のコマンドをターミナル上で実行します。

gem list

以下のように、gemのリストが表示されます。たくさんインストールされていることがわかります。

gemのインストール

Railsでgemをインストールしたい場合は、Gemfileにインストールしたいgemの名前やバージョンをgem ‘gemの名前’のように記述します。

gem ‘nokogiri’

記述後、ターミナル上で以下のコードを実行すると、インストールされます。bundleでインストールした場合、Gemfileに書かれたgemが一括でインストールされます。

$ bundle install

gemの削除

gemを削除する際は、ターミナルにてbundle exec gem uninstall ‘gemの名前’を実行します。

$ bundle exec gem uninstall ‘nokogiri’

Gemfile.lock

Gemfile.lockファイルGemfileを作成し、bundlerを用いてgemをインストールした際に作られるファイルで、Railsにはデフォルトで備わっています。

この「Femfile.lock」というファイルには、gemやそのバージョン、取得先といった、bundlerが実際にインストールしたgemの詳細が書かれています。

これをコピーして、でつのディレクトリで使えば、全く同じ環境を構築することができます。

上記のコードでgemを削除した場合、このGemfile.lockに反映させるためには、

bundle updateまたはbundle installをターミナルで実行し、更新する必要があります。

まとめ

Rubyで用いられているパッケージ管理システム「gem」と、人気なgemについて紹介し、Ruby on Railsにおけるインストール方法について紹介しました。

参考文献