Tbpgr Blog

Employee Experience Engineer tbpgr(てぃーびー) のブログ

Ruby | Kernel | require

概要

Kernel#require(feature) -> bool

詳細

Ruby ライブラリ feature をロードします。
拡張子補完を行い、 同じファイルの複数回ロードはしません。

ライブラリのロードに成功した時には true を返し、ロードした feature の名前を(拡 張子も含めて) 変数 $" に追加します。
ただし、feature の名前が既に $" に含まれていた場合はロードせずに false を返します。

サンプルコード

読み込み対象
./hoge.rb

def hoge
  puts "hoge"
end
def grep_loaded(filename)
  file = $".grep(filename).first
  file ? File.basename(file) : ''
end

# require 前に $" を確認
puts grep_loaded(/hoge/)

# 初回 load 成功のため true を返す
ret = require './hoge'
puts grep_loaded(/hoge/)
puts ret

# load済みのため false を返す
ret = require './hoge'
puts grep_loaded(/hoge/)
puts ret

出力

hoge.rb
true
hoge.rb
false