一次只能自动加载一个模块级别,因此需要引入一个中间文件。
lib/my_gem/dym.rb
这意味着:
# console.rb
require_relative 'lib/my_gem'
# lib/my_gem.rb
module MyGem
autoload :Dym, "./lib/my_gem/dym.rb"
puts "The Dym::Proximity module isn't yet loaded!"
Dym::Proximity
puts "The Dym::Proximity module has been successfully loaded!"
end
# lib/my_gem/dym.rb
module MyGem
module Dym
autoload :Proximity, "./lib/my_gem/dym/proximity.rb"
end
end
# lib/my_gem/dym/proximity.rb
module MyGem
module Dym
class Proximity
puts 'Dym::Proximity module is loading!'
end
end
end
通过以下文件,我得到以下输出:
ruby console.rb
The Dym::Proximity module isn't yet loaded!
Dym::Proximity module is loading!
The Dym::Proximity module has been successfully loaded!