gemspec ファイルからの依存関係のインストール

概要

git リポジトリからチェックアウトした既存の gem で作業したいと考えています。 Ruby のクリーンインストールを使用しています。まず、gemspec ファイルで指定された依存関係をインストールして、gem をビルドしてテストできるようにしたいと思います。これにはバンドラーを使用しません。

現在、gemspec を読み取り、「gem」を呼び出して、gem を手動でインストールしています。私がやりたいことは次のようなものです:

git clone my_gem
cd my_gem
gem magically-install-dependencies my_gem.gemspec

.gem ファイルからインストールした場合と同様に、ランタイムと開発の依存関係がすべてインストールされます。これを行う方法はありますか?

gem のドキュメントを検索しましたが、ビルド以外に gemfile で機能するものはないようです。

解決策

Rubygems 自体にバンドラーが採用されているため、両方のツールの違いは薄れてきています。それでも、gem インストールだけで gemspec ファイルから gem をインストールできます。このコマンドは、gem 依存関係 API ファイルを指定できるオプションの -g フラグをサポートしています。ドキュメントには、このフラグについて次のように記載されています。

このような gem 依存関係ファイルを作成する最も簡単な方法は、次の内容をそのまま含む単純な Gemfile を gemspec ファイルと同じディレクトリに作成することです。

source 'https://rubygems.org'
gemspec

このファイルは、gem install -g (およびbundle install) に対して、現在のディレクトリから gemspec ファイルをフェッチし、そこで指定されている依存関係をインストールに使用するように指示します。

必要に応じてバンドラーを使用できます。その場合、利用可能な最新の gem バージョンを常にインストールしたい場合は、Gemfile.lock をコミットしたり保持したりする必要はありません。

こうすることで、バンドラーに厳密に依存することはなくなりますが、バンドラーが提供する自動機能を引き続き使用できます。