Docs header transparent bg

gemを開発するときにBundlerを使用する

スクラッチからgemを作成する場合は、バンドラの組み込みのgemスケルトンを使用して編集するベースgemを作成できます。

$ bundle gem my_gem

これにより、新しいgemスケルトンを含むmy_gemという名前の新しいディレクトリが作成されます。すでにgemがある場合は、Gemfileを作成してBundlerを使用して開発の依存関係を管理できます。次に例を示します。

source "https://rubygems.org"
gemspec
gem "rspec", "~> 3.9"
gem "rubocop", "0.79.0"

このGemfileでは、gemspecメソッドはmy_gem.gemspecファイルのadd_runtime_dependencyでリストされたgemをインポートし、またgemをテストおよび開発するためにrspecとrubocopをインストールします。gemspecとGemfileからのすべての依存関係はbundle installによってインストールされますが、rspecとrubocopはgem install mygemまたはbundle add mygemには含まれません。gemspecのランタイム依存関係はGemfileでリストされているものと同様に処理され、開発の依存関係はデフォルトでグループ:developmentに追加されます。:development_groupオプションを使用してそのグループを変更できます

gemspec :development_group => :dev

また、:pathを使用して特定のgemspecを指定することもできます。gemspecが/gemspec/pathにある場合は、次を使用します

gemspec :path => '/gemspec/path'

同じディレクトリに複数のgemspecがある場合は、:nameを使用して参照するgemspecを指定します

gemspec :name => 'my_awesome_gem'

これによりmy_awesome_gem.gemspecが使用されます。それだけ!gemを開発するときはバンドラを使用し、それ以外の場合は通常どおりgemspecを使用してください。

$ gem build my_gem.gemspec