#今回のテーマ
今回は、RubyのGemについて学んだことを投稿していきたいと思います。主に、gem,bundler,gemfileについて書いていきたいと思います。
#gem
gemは、ログイン機能や検索機能など、便利な機能がパッケージ化されたRubyの外部ライブラリである。使用するには、インストールと読み込みが必要である。コマンドで以下を実行すると、gemをインストールすることができる。また、インストールしているgemの一覧を表示するには、gem listを使う。
gem install インストールしたいgem名
実際にgem listを実行すると、以下のように自分のPCにインストールされているgemが表示される。
$ gem list
*** LOCAL GEMS ***
actioncable (6.1.4, 6.1.3.2)
actionmailbox (6.1.4, 6.1.3.2)
actionmailer (6.1.4, 6.1.3.2)
actionpack (6.1.4, 6.1.3.2)
actiontext (6.1.4, 6.1.3.2)
actionview (6.1.4, 6.1.3.2)
activejob (6.1.4, 6.1.3.2)
activemodel (6.1.4, 6.1.3.2)
///
省略
///
xmlrpc (0.3.0)
xpath (3.2.0)
zeitwerk (2.4.2)
zlib (default: 1.0.0)
※用語の解説
- パッケージ =>プログラムの部品で便利な機能を一まとめにしたもの。
- ライブラリ =>汎用性の高い機能を、他のプログラムを呼び出して使えるように部品化して集めたファイル
- 外部ライブラリ =>開発者が他の開発者にも使えるように開発したライブラリ
#bundler
gem同士の依存関係やgemのバージョンを管理するgemの一種である。
例えば、あるgemのバージョンを使うために、別のgemのバージョンが必要だったとする。この時、この二つのgemは依存関係にある。という。ただ、正しいバージョンの組み合わせでインストールしないと、意図しない動作をする恐れがある。
->bundlerを使うことで、このような依存関係にあるgemの一括インストールを行うことができる。
gemのバージョンを確認するには、以下のコマンドを打てば良い。
$ bundler -v
Bundler version バージョンの数
#Gemfile
bundlerによってインストールされたgemの一覧を管理するファイルである。インストールされているgemとそのバージョン一覧が記述されている。railsのgemをインストールすると、gemfileが生成されるが、その時のgemfileの例を以下にあげる。
source 'https://rubygems.org'
git_source(:github) { |repo| "https://github.com/#{repo}.git" }
ruby '2.6.6'
# Bundle edge Rails instead: gem 'rails', github: 'rails/rails', branch: 'main'
gem 'rails', '~> 6.1.4'
# Use sqlite3 as the database for Active Record
gem 'sqlite3', '~> 1.4'
# Use Puma as the app server
gem 'puma', '~> 5.0'
# Use SCSS for stylesheets
gem 'sass-rails', '>= 6'
# Transpile app-like JavaScript. Read more: https://github.com/rails/webpacker
///
省略
///
# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]
#まとめ
以上のことをまとめると以下になる。
- gem:様々な機能がパッケージされたRubyの外部ライブラリのこと
- bundler:gem同士の依存関係を管理する。
- gemfile:bundlerによってインストールされたgemとバージョンが記述されたファイル
まだまだ勉強中ですが、見ていただきありがとうございました。