Tbpgr Blog

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

書籍 Ruby Cookbook | Automatically Loading Libraries as Needed

パンくず

Ruby Cookbook
Automatically Loading Libraries as Needed

概要

Automatically Loading Libraries as Needed

内容

利用する時に初めて対象ファイルをロードしたい場合には
autoloadを利用します。

サンプルコード

サンプル中で、ロード有無の確認のために
autoload? メソッドを利用しています。
このメソッドは未ロード時はロード対象の名称が出力され、
ロード済時はnilを返却します。

6_sub.rb ロードされるファイル
# encoding: Windows-31J

class HogeSub
  def hoge_sub
    puts "hoge_sub"
  end
end
6.rb requireでロードするサンプル
# encoding: Windows-31J
require "pp"
require "./6_sub"

pp autoload?(:HogeSub)
HogeSub.new.hoge_sub
pp autoload?(:HogeSub)
6_auto.rb autoroadでロードするサンプル
# encoding: Windows-31J
require "pp"
autoload :HogeSub,"./6_sub"

pp autoload?(:HogeSub)
HogeSub.new.hoge_sub
pp autoload?(:HogeSub)

出力

6.rb requireでロードするサンプル
nil
hoge_sub
nil
6_auto.rb autoroadでロードするサンプル
"./6_sub"
hoge_sub
nil