Gems and Bundler
| gem install | |
| The Gemfile | |
| Bundle install | |
| The lockfile |
gem install
A gem is a packaged Ruby library with code and metadata. The gem command installs and lists these packages on your machine.
Check the tool itself first, then install one package by name to try it out quickly in a script.
gem -v
3.5.11
gem install minitest
Successfully installed minitest-5.20.0
The Gemfile
The Gemfile lists the gems one project needs, with optional version limits. Bundler reads it to build a consistent set.
Keep this file in version control so every machine installs the same stack. The idioms from
Duck typing and core idioms
stay the same no matter which gems you add.
source "https://rubygems.org"
gem "minitest", "~> 5.20"
Bundle install
bundle install reads the Gemfile and installs every missing gem. Run it after cloning a project and after editing the Gemfile.
Bundler resolves versions so all gems fit together, then remembers the result for the next section.
bundle -v
Bundler version 2.5.11
bundle install
Bundle complete
The lockfile
Bundler writes exact versions into Gemfile.lock. This file freezes the whole tree, including dependencies of dependencies.
Commit the lockfile for apps so servers and teammates run identical code. Libraries usually leave it out because they support version ranges. More Ruby tooling is linked from the
Ruby overview.
GEM
specs:
minitest (5.20.0)
Next: Testing with Minitest
Article author: Arthur Isaev