hiyoko-programingの日記

プログラミングを勉強したてのひよっ子。   エンジニア目指して勉強中。

Gemについて

Gemの追加

 ライブラリ

ある特定の機能を持ったコンピュータプログラムを他のプログラムから呼び出して利用できるように部品化し、そのようなプログラム部品を複数集めて一つのファイルに収納したものをライブラリという。
ライブラリはrubyrailsに限ったものではなく、プログラミング言語全般で利用される。

 Gem(ジェム)

RailsGemと呼ばれる便利なrubyライブラリをインストールして利用することで、より簡単にアプリケーション開発をすることができる。gemには開発を効率化してくれたり、会員登録サービスが簡単にできるなど便利なものがたくさんある。Railsアプリケーションは全てをゼロから作るのではなくgemのライブラリも利用することでより効率的に開発することができる。

 Gemfileとbundle install

RailsでGemを追加するには「Gemfile」というファイルに「gem ‘Gem名’」と追記し、「bundle install」コマンドを実行する必要がある。「bundle install」コマンドは「bundler」と呼ばれるシステムを利用してGemをインストールするためのコマンド。Gemfileに追記したGemは「bundle install」コマンドを実行することによってインストールされるので、Gemfileを編集した際には必ずこのコマンドを実行する。

【例】

アプリケーション名/Gemfile
1
2
  gem 'Gem名'
  # Gemの追加
ターミナル
1
2
  $ bundle install
  # Gemをインストール

Gemfileを開く。

ファイルを開く際は、直接開く方法と、ショートカットキーで開く方法がある。直接開く場合は、開きたいファイルをクリック。ショートカットキーで開く場合は、「command + p」でディレクトリ内のファイルを検索して開くことができる。

https://tech-master.s3.amazonaws.com/uploads/curriculums//7f1f8ed40e6f88460090b60adc32cfa1.gif

 「pictweet/Gemfile」のmysql2とsass-railsのバージョン指定を以下の記述に変更する。

pictweet/Gemfile
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
  source 'https://rubygems.org'

  ...
  (中略)
  ...

gem 'rails', '~> 5.2.2', '>= 5.2.2.1'
# Use mysql as the database for Active Record
gem 'mysql2', '0.5.2'
# Use Puma as the app server
gem 'puma', '~> 3.11'
# Use SCSS for stylesheets
gem 'sass-rails', '5.0.7'
  ...
  (中略)
  ...

    # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
    gem 'spring'
  end

 「pictweet/Gemfile」の以下のような記述を、一番下に追記する。

pictweet/Gemfile
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
  source 'https://rubygems.org'

  ...
  (中略)
  ...

  gem 'mysql2', '0.5.2'
  # Use SCSS for stylesheets
  gem 'sass-rails', '5.0.7'

  ...
  (中略)
  ...

# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]

gem 'pry-rails'
gem 'compass-rails', '3.1.0'
gem 'sprockets', '3.7.2'

Gemfileの一番下に追記する。
初めからインストールされているGemに加えて3つのGemを追加した。また、「mysql2」「sass-rails」というGemに対してはバージョン指定を行った。そのため、Gemのバージョン指定を管理している「Gemfile.lock」というファイルを更新するために「bundle update」を行う。

 bundle update

bundle updateを行うことによってgemfileに記述した内容をgemfile.lockに反映させることができる。

「pictweet/Gemfile.lock」というファイルを更新。

ターミナル
1
2
  $ bundle update
  # Gemfileを更新する
ターミナル
1
2
  $ pwd
  # 現在のディレクトリが「/Users/ユーザー名/projects/pictweet」であることを確認

 

要点チェック