【Ruby】RubyファイルからGemfileを読み込む方法を紹介します

今回の記事は、railsではなくて、rubyファイルからGemfileを読み込んでいきます。

railsだと勝手にやってくれているので、あまり知られていないかもしれません。

が、理屈を理解するという意味ではとても重要なので、一緒に学習していきましょう。

今回はsinatraを使って学習していきます。

versions
  • ruby 2.6.5

Gemfileを作成しbundle installをしよう

まずは準備です。

任意のディレクトリを作成します。

~$ mkdir sinatra
~$ cd sinatra

以下のコマンドでGemfileを作成します。

sinatra$ bundle init

Gemfileを編集します。

# frozen_string_literal: true

source "https://rubygems.org"

git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }

gem 'sinatra'

bundle installをすると、Gemfile.lockが出来上がるはずです。

Gemfileを読み込んでいこう

任意のrubyファイルを同じディレクトリに作成し、以下を記述します。

今回は、main.rbというファイルを作成しています。

// bundlerのgemを読み込む
require 'bundler'
Bundler.require

// sinatraの記述
get '/' do
  'hello world'
end
ポイント

Bundle.requireで同ディレクトリにあるGemfile.lockを読み込む

念のため、sinatraを起動してみましょう。

sinatra$ ruby main.rb

sinatraは無事に起動できましたか?
とても簡単ですが、railsばかりやっていると意識しないのが残念です。。。

まとめ

  • bundle initでGemfileを作成する
  • bundle installをする
  • requireでbundlerを読み込む

素のrubyで何かプログラムを書く時はとても役立つので、覚えておくと良いでしょう。

参考

bundle installしたgemを通常のrubyコードでrequireする方法