Ruby

Bundlerとgem

外部ライブラリをプロジェクト単位で記録し、同じ環境を再現しましょう。

01

gemとBundler

gemはRubyのライブラリ配布形式です。Bundlerは必要なgemとバージョンの組み合わせを管理します。

Gemfile→ bundle installGemfile.lock同じ依存関係
02

Gemfileを作る

作業フォルダーで初期化し、必要なgemを記述します。

初期化COMMAND
bundle init
GemfileRUBY
source "https://rubygems.org"

ruby ">= 3.3"
gem "rake"

group :test do
  gem "minitest"
end

バージョン条件は公式情報と互換性を確認して決めます。

03

インストールして実行する

コマンドCOMMAND
bundle install
bundle exec ruby app.rb
bundle exec ruby test/app_test.rb

bundle execを付けると、Gemfile.lockで選ばれたgemを使えます。

テスト成功時の要点OUTPUT
2 runs, 2 assertions, 0 failures, 0 errors, 0 skips
04

プロジェクト構成

構成例TEXT
sample_app/
├── .ruby-version
├── Gemfile
├── Gemfile.lock
├── lib/sample_app.rb
└── test/sample_app_test.rb

アプリケーションではGemfile.lockをGitへ含め、同じ依存バージョンを再現します。

05

安全に管理する

確認項目
  • 正確なgem名、公開元、ライセンス、更新状況
  • 不要なgemを追加していないか
  • bundle outdatedで更新候補を確認したか
  • 更新後に全テストが成功するか
  • 秘密情報をコードへ書いていないか
確認COMMAND
bundle list
bundle outdated

Bundlerは安全性を自動保証しません。脆弱性情報と更新内容を確認します。

PRACTICE

ミニ課題:テスト付きプロジェクト

上の構成で計算メソッドとMinitestを作り、bundle exec ruby test/sample_app_test.rbを成功させてください。