Open6

gemの仕組み

DANDAN

Rubyにおけるライブラリの種類

標準ライブラリ(組み込みライブラリ)

String, Arrray, Hashなど

インストール: 不要
読み込み(require): 不要

標準ライブラリ(非組み込み)

csv, jsonなど

インストール: 不要
読み込み(require): 必要

外部ライブラリ

インストール: 必要
読み込み(require): 必要

DANDAN

gemとは

Rubyで使うために作られた外部ライブラリのこと。

.gemという拡張子の1つのファイルに、いろんな処理がパッケージングされている。

DANDAN

RubyGemsとは

標準ライブラリ(組み込みライブラリ)の1つ。

gemのインストールなどができる。

gem install [Gem名]

とすると
rubygems.orgというgemの公開リポジトリから、入力された名前のgemを検索してインストールする。

https://rubygems.org/

.gemファイルにパッケージングされる前の、処理の中身を見たい場合は、該当のgemのページにアクセスし、GitHubのリンクをクリックすることで確認できる。

DANDAN

Bundlerとは

GemfileGemfile.lockという2つのファイルを使って、gemのバージョンや依存関係を管理してくれるgem。

  • 使いたいgem名(必要ならバージョンも)をGemfileに書く
  • ↑に書かれたgemと、依存関係にあるgemを全部リストアップして、それぞれどのバージョンをインストールするか決め、Gemfile.lockに書き込む
  • Gemfile.lockの情報をもとに、必要なgemを全てインストールする

こうすることで、

  • 同じGemfileGemfile.lockを持っていれば、誰でも同じバージョンのgemをインストールすることができる
  • Gemfileという1つのファイルにgemを書くので、gemの管理がしやすい
  • Gemfileを使ってアプリごとにgemを管理できる
    などのメリットがある。

https://pikawaka.com/rails/bundler

DANDAN

gemがインストールされる場所

デフォルトだと、今使ってるRubyがインストールされている場所に応じて決まる。

例えばrbenvを使ってRubyをインストールした場合は、以下のような場所にgemがインストールされる。

`~/.rbenv/versions/2.7.6/lib/ruby/gems/2.7.0/gems

bundlerを使ってgemをインストールする場合には、--pathオプションを使って

$ bundle install --path vendor/bundle

などと書くことで、そのアプリのvendor/bundle以下にgemをインストールすることができる。

/Users/tsubasanamatame/sample_app/vendor/bundle/ruby/2.7.0/gems