Rubyでは外部ライブラリを読み込む機能があります。
今回は外部ライブラリを読み込むためのrequireメソッドについて解説します。
require
requireメソッドは外部のRubyファイルを読み込むためのメソッドです。
Rubyではこの関数を使うことによって、外部のRubyファイルを読み込み、実行することができます。
例えば、以下のようなファイルがあります。
1 2 3 |
--lib.rb-- puts "Hello Milkman!!" |
このファイルを読み込むためには以下のような書き方をします。
1 2 3 |
--req_test.rb-- require "./lib.rb" #拡張子は省略可能 |
拡張子は補完してくれるため省略可能です。
読み込むファイルはカレントディレクトリに置いてあります。
実行ファイル(req_test.rb)の実行結果はこのようになります。
1 |
Hello Milkman!! |
requireを使う際に、いくつか注意点があります。
注意点
ディレクトリ
requireメソッドでRubyファイルを読み込む際、そのファイルがどのディレクトリに入っているか確認しましょう。
先ほどの例では、読み込むファイルをカレントディレクトリに置き、実行したディレクトリからの相対パスをとっています。
この場合、カレントディレクトリの外から実行するとエラーが出てしまうので注意しましょう。
読み込むファイルをカレントディレクトリ以外のディレクトリに置いてある場合、以下のような書き方をするとエラーが出ずに実行できます。
1 |
require_relative "filename" |
load
ファイルを読み込む関数として、loadメソッドと呼ばれるものもあります。
requireとload、どちらもファイルを読み込む関数ですが、requireメソッドはファイルを一度しか読み込みません。
一方、loadメソッドは無条件にファイルを読みこませることができます。
一般的に、requireメソッドはライブラリを、loadファイルは設定などのファイルを読みこませることが主な用途です。