techcareer freelance

ニュース・コラム

スキル 2019年 6月28日 92

gemとは何か - Ruby, Ruby on Rails

gemとは何か - Ruby, Ruby on Rails

gemとは何か

gemとはrubyのライブラリのこと。

gemの扱い方

gem list でインストール済みのgemの確認ができる

$ gem list




*** LOCAL GEMS ***

actioncable (5.2.1, 5.2.0, 5.1.6, 5.1.4)
actionmailer (5.2.1, 5.2.0, 5.1.6, 5.1.4)
actionpack (5.2.1, 5.2.0, 5.1.6, 5.1.4)
actionview (5.2.1, 5.2.0, 5.1.6, 5.1.4)
activejob (5.2.1, 5.2.0, 5.1.6, 5.1.4)
activemodel (5.2.1, 5.2.0, 5.1.6, 5.1.4)
activerecord (5.2.1, 5.2.0, 5.1.6, 5.1.4)
activestorage (5.2.1, 5.2.0)
activesupport (5.2.1, 5.2.0, 5.1.6, 5.1.4)
addressable (2.5.2)
archive-zip (0.11.0)
arel (9.0.0, 8.0.0)
ast (2.4.0)
bigdecimal (default: 1.3.4)
bindex (0.5.0)
bootsnap (1.3.1)
builder (3.2.3)
bundler (1.16.4, 1.16.3)
byebug (10.0.2, 9.0.6)
capybara (3.4.1)
childprocess (0.9.0)
chromedriver-helper (1.2.0)

〜省略〜

 

 

rails に関連するgemを探したい場合は gem search -r rails で探すことができる

$ gem search -r rails




*** REMOTE GEMS ***

aa-rails4 (0.6.0)
aaronchi-jrails (0.5.1)
aavkontakte-rails3 (0.1.9)
ab-experiments-rails (0.0.3)
abcjs-rails (3.0.1)
access-granted-rails (0.1.0)
access-watch-rails (0.0.3)
access_policy_rails (0.0.2)
access_watch_rails (0.1.2)
accessible-bootstrap3-rails (0.2.4)
account_kit_rails (0.0.0)
accountingjs-rails (0.0.4)
ace-rails (0.0.2)
ace-rails-ap (4.2)
ace_editor-rails (0.0.1)
ace_vimtura-rails (0.1.3)
aced_rails (0.2.1)
ack_favicon_maker_rails (1.0.2)
ack_rails_admin_jcrop (0.2.0.2)
ack_rails_admin_settings (1.2.3.3)
act-fluent-logger-rails (0.5.0)

〜省略〜

 

 

なお、ブラウザで確認したい場合は下記を参照 ruby-toolbox RubyGems.org

gem のインストールは gem install rails で可能だが、あまりお勧めできる方法ではない。 bundler で管理するのが常套

 

 

bundlerとは

bundle inatall などで使われる bundler 。実はこれもgemの一つである。 用途はgemの管理。

gemを複数使っていると、依存関係が出てくる。 バージョンが??だの、あのgemがないだの言われる。 それをbundlerで管理する。そのファイルがGemfileである。

 


source 'https://rubygems.org'
git_source(:github) { |repo| "https://github.com/#{repo}.git" }

ruby '2.5.3'

gem 'mysql2', '>= 0.4.4', '< 0.6.0'
gem 'puma', '~> 3.11'
gem 'rails', '~> 5.2.2.1'
gem 'sass-rails', '~> 5.0'
gem 'uglifier', '>= 1.3.0'
# gem 'mini_racer', platforms: :ruby
gem 'coffee-rails', '~> 4.2'
gem 'jbuilder', '~> 2.5'
gem 'turbolinks', '~> 5'
# gem 'redis', '~> 4.0'
gem 'bootsnap', '>= 1.1.0', require: false
gem 'mini_magick', '~> 4.8'

gem 'aws-sdk'
gem 'carrierwave', '~> 1.0'
gem 'config'
gem 'devise'
gem 'devise-i18n'
gem 'draper'
gem 'exception_notification'
gem 'fog-aws'
gem 'font-awesome-rails'
gem 'gretel'
gem 'kaminari'
gem 'ranked-model'
gem 'ransack'
gem 'slack-notifier'
gem 'slim-rails'
gem 'yaml_vault'

group :development do
  gem 'listen', '>= 3.0.5', '< 3.2'
  gem 'spring'
  gem 'spring-watcher-listen', '~> 2.0.0'
  gem 'web-console', '>= 3.3.0'

  gem 'better_errors'
  gem 'bullet'
  gem 'capistrano'
  gem 'capistrano-bundler'
  gem 'capistrano-rails'
  gem 'capistrano-rbenv'
  gem 'capistrano-yarn'
  gem 'capistrano3-puma'
  gem 'guard-rspec', require: false
  gem 'rack-mini-profiler'
  gem 'rails-flog', require: 'flog'
  gem 'simplecov',  require: false
end

〜省略〜

 

 

source 'https://rubygems.org' でホスティングサーバーを指定。 gem 'rails', '~> 5.2.2.1' でrails のバージョンを指定。

group :development do
  gem 'listen', '>= 3.0.5', '< 3.2'
  gem 'spring'
  gem 'better_errors'
  gem 'bullet'
end

本番環境で使うgemを指定。

こんな感じでgemを記載していく。 Gemfileを書き終えたら、bundle insrall でGemfileに記載された通りにインストールする。

その際に、Gemfile.lockを作成する。 このファイルがgemのバージョンをロックしバージョンが変わらない様にしてくれる。 つまり、gemが更新されても使用するgemのバージョンはそのままにしてくれる。

Gemfile.lockを更新したいときは bundle update を使う。

ページ上へ