スリ飯屋MaLankaのフリーエンジニアな日々

このブログでは、フリーランス5期目となる自身の実体験から、フリーランスエンジニアになるためのノウハウ、ブログや沖縄移住、スリランカの最新情報について発信します。

【Rails Ruby】メソッドで特定のgemがインストール済かチェックする

※記事内に提携先企業のアフィリエイト広告(リンク、バナー等)、Google広告を含む場合があります

【Rails Ruby】 メソッドで特定のgemがインストール済かチェックする


こんにちは、現役沖縄フリーランスエンジニアのmah(MaLanka)です。


このブログでは、

僕がIT未経験から約1年でフリーランスエンジニアになるまでの過程、

ノウハウなどを書いていきます。


今回は、


  • 【Rails Ruby】メソッドで特定のgemがインストール済かチェックする


について書いていきます。




メソッドで特定のgemがインストール済かチェックする


ターミナルで $ gem list xxx のようにするのではなく、

メソッドで特定のgemがインストール済かチェックしたい。




やり方


ターミナルと同様に gem コマンド(メソッド)を使えばOKです。


gem '指定のgem名'

で調べられます。


戻り値は、


  • 引数のgemがインストール済ならtrueを返す

  • インストールされていなければ Gem::LoadError をraiseする


といった感じです。




検証


Rails Consoleで検証します。


# rails インストール済
pry(main)> gem 'rails'
=> true

# インストール済なのでtrueに入る
[38] pry(main)> if gem 'rails'
[38] pry(main)*   puts 'rails is installed.'
[38] pry(main)* end  
rails is installed.
=> nil

# not_installed_gem はインストールされていないので Gem::LoadError がraiseされる
pry(main)> gem 'not_installed_gem'
Gem::LoadError: not_installed_gem is not part of the bundle. Add it to your Gemfile.
from /usr/local/bundle/gems/bundler-1.17.3/lib/bundler/rubygems_integration.rb:408:in `block (2 levels) in replace_gem'

# Gem::LoadError がraiseされるので puts 'not called.' には入らない
gem 'not_installed_gem'
[38] pry(main)> if gem 'not_installed_gem'
[40] pry(main)*   puts 'not called.'
[40] pry(main)* end  
Gem::LoadError: not_installed_gem is not part of the bundle. Add it to your Gemfile.
from /usr/local/bundle/gems/bundler-1.17.3/lib/bundler/rubygems_integration.rb:408:in `block (2 levels) in replace_gem'




補足


gemがインストール済かどうか判定するメソッドは、

おそらく Bundler::RubygemsIntegration に生えてそうですが(おそらくreplace_gem)、

サクッと使えなかったのでスルーしました...


docs.ruby-lang.org




RailsやRubyを学びたい人へ


RailsやRubyを学びたい人は、

RailsHack(レイルズハック)という、

最近できた新しいプログラミングスクール(今なら通常価格69,800円が、早期割で29,800円!)か、

Udemy で下記のコースを受講すると良いです★


✅1. フルスタックエンジニアが教える 即戦力Railsエンジニア養成講座

✅2. 【はむ式】ハンズオンで学ぶRuby on Rails 6【Dockerにも触れられる】 <- おすすめ。ハムさんはReactやTypeScriptの教材も非常に丁寧。

✅3. はじめてのRuby on Rails入門-RubyとRailsを基礎から学びWebアプリケーションをネットに公開しよう




また、

Udemy は定期的にセールをやっていますし(90%OFFとかもザラ)、

「30日間なら返金できる」ので、

満足できなかった時でも安心です。



【公式】RailsHack(レイルズハック)

【公式】Udemyで学んでみる




最後に


下記の表に、

フリーランスエンジニア向けの人気エージェントをまとめてみました。


エージェント選びで悩んでいる方は是非参考にしてみてくださいね★


エージェント 詳細 最高単価/月 設立
フリエン(furien) 評判をチェック 180万円/月 2011年
ギークスジョブ 評判をチェック 180万円/月 2011年
フォスターフリーランス 評判をチェック 230万円/月 1996年
pe-bank(pebank) 評判をチェック 200万円/月 1989年
Midworks(ミッドワークス) 評判をチェック 200万円/月 2013年
レバテックフリーランス 評判をチェック 140万円/月 2005年