require到底干了什么?
告诉编译器我们想要引用其它地方的代码。
当我们require某个外部代码的时候,我们实际上是告诉编译器寻找对应的rb文件。这个rb文件中有什么?答案是,引用代码的具体定义
我们require实际上是载入代码的实现/定义
require的实现
按照官方解释,require将会在Ruby的LOAD_PATH中查找对应文件并将其载入
RubyGem用自己的require替代了系统默认的版本,并藉此实现了它自己的逻辑。
Ruby本身载入某个代码只会在LOAD_PATH里寻找,如果我们定义"使用某个Gem"为将Gem所在路径添加到Ruby的LOAD_PATH里,这样当我们使用了某个Gem后,我们便能够载入这个Gem的代码了
http://www.cnblogs.com/Dahaka/archive/2013/03/10/ruby_require.html