お役立ちコンテンツ | フリーランスエンジニアの案件・求人なら【テクフリ】

gemとは何か 【Ruby, Ruby on Rails】

2019.10.16

yamazaki_k

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 を使う。

    フリーランス案件を探す

    今すぐシェアしよう!

    B!
    <span class="translation_missing" title="translation missing: ja.layouts.footer.icon_back_to_top">Icon Back To Top</span>
    TOP