我对 Rubygem 产生了兴趣,并开始探索它是如何工作的,发现在 1.9 之后,Rubygemrequire
变成了 THE require
.
使用以下代码:
require 'debugger'
debugger
require 'thor'
我开始n
and l
and s
,但被困在:
# specification.rb:263
def self._all # :nodoc:
unless defined?(@@all) && @@all then
specs = {}
self.dirs.each { |dir|
Dir[File.join(dir, "*.gemspec")].each { |path|
spec = Gem::Specification.load path.untaint
# #load returns nil if the spec is bad, so we just ignore
# it at this stage
specs[spec.full_name] ||= spec if spec
}
}
@@all = specs.values
_resort!
end
@@all
end
看来在踏入上面的方法之前,@@all
已经做好了准备。然后我到处设置断点@@all =
,但没有一个断点到达。
我错过了什么???
编辑:
再看看我的问题。看到了require 'debugger'
吗?我觉得自己像个傻瓜。
现在的问题是“我该如何调试require
”?
关闭: