前回までのプログラミング学習コラムに続き11回目の勉強内容です。
コラムの連載をさせていただいている小林寛和(ひろかず)です。Ruby on Railsのコラムの第11回目となります。今回はRubyGemsを使ってRailsをよりリッチにしていきましょう。
RubyGems
RubyGemsとは?
RubyGemsとは、rubyでAPIを扱う際に使うパッケージ形式のことです。詳しくはこちらを参考にして下さい。コマンドライン上で「gem install gemファイル名」と入力する事でAPIを簡単に導入することが出来ます。
Bundlerとは?
RubyGemsはBundlerという仕組みを使うことで管理を簡単にすることができます。BundlerとはRubyGemsを管理する仕組みの事で、PC本体にインストールするのではなく、アプリ単位でRubyGemsを管理することが出来るようになります。
例えば、あなたは今AとBというアプリを制作しています。Aで使用するgemはバージョン1で使用したいのですが、Bで使用するアプリはバージョン2で使用したいと思っています。
ここで問題なのは、素直にコマンドラインから「gem install gemファイル名」と実行してしまうと、最新バージョンのgemがダウンロードされてしまい、アプリAが動きません。
ここでBundlerを使ってRubyGemsを管理すると、Aではバージョン1を、Bではバージョン2を使うことが出来ます。
Bundlerの使い方
Bundler自体もRubyGemsなので、コマンドライン上から「gem install bundler」を実行することでインストールすることが出来ます。これであなたのPCにBundlerが導入されました。使い方は非常に簡単で、アプリのディレクトリ内に「Gemfile」というファイルを作成し、中にインストールしたいgemの名前を記述していきます。具体的な記述方法は以下のようになります。
source "http://rubygems.org" gem "インストールしたgemファイル名"
Gemfileを作成したら、一度だけコマンドライン上から「bundle install –path vendor/bundle」を実行しましょう。すると同ディレクトリ内にbundleというディレクトリが作成され、中にそのアプリに必要なRubygemsをインストールしてくれます。
railsでRubyGemsを扱う
Railsも例によってBundlerによってRubyGemsを管理しています。「rails new」コマンドでアプリを作成すると、自動的に内部にGemfileが生成され、先ほどの「bundle install」コマンドまで実行してくれます。ちなみに、「rails new app_name –skip-bundle」でそれらをスキップすることもできます。
RailsでAPIを使ってアプリを作成したい場合は、このGemfileに「gem “導入したいgemファイル名”」を書き足し、「bundle install」を実行することで導入することができます。
まとめ
今回はまずRubyでAPIを扱う際に利用するRubyGemsと、それらを簡単に管理することが出来るBundlerの仕組み、更にRailsでAPIを利用する方法について書きました。次回は実際にRubyGemsを使ってアプリを動かしてみましょう。