ruby - pry 中默认加载哪些库?
问题描述
当我使用Tempfile
class in 时pry
,我不使用 require 它。
% pry -f
pry(main)> Tempfile
Tempfile < #<Class:0x00007fb5121149b8>
但是在irb
我必须先要求的时候tempfile
。
% irb
irb(main):001:0> Tempfile
NameError: uninitialized constant Tempfile
from (irb):1
from /Users/ironsand/.rbenv/versions/2.4.3/bin/irb:11:in `<main>'
irb(main):002:0> require 'tempfile'
=> true
所以它似乎pry
默认加载一些库。实际加载了哪些库?
这是我的环境
% ruby -v
ruby 2.4.3p205 (2017-12-14 revision 61247) [x86_64-darwin17]
% irb --version
pirb 0.9.6(09/06/30)
% pry --version
Pry version 0.11.3 on Ruby 2.4.3
解决方案
您可以比较查看默认会话与会话(或纯 ruby 脚本)$LOADED_FEATURES
中加载的所有内容。pry
irb
简短的回答是,Pry 加载它需要提供自己的行为的任何库。长答案太长(而且很可能过时,或版本之间存在差异)无法在此处列出 - 最好询问您当前的环境。
最好不要依赖其他库为您加载它们的依赖项,因为这些依赖项可能会发生变化。(尽管在这种情况下,很难注意到您缺少 a require
,因为一切仍然有效。)
推荐阅读
- python - gi.require_version('Gdk', '3.0')
- docker - 如何在谷歌云平台上使用docker bridge网络?
- geolocation - 可以使用 S2 库找到 K 个最近点(并且有效)?
- html - 更改引导框架的 NAVBAR 颜色
- java - 如何在 JTextArea 列表中浏览此代码的结果?
- javascript - 防止 ESModules 在使用脚本标签导入时被延迟
- swift - 枚举大小写的错误原始值必须是文字
- reactjs - 模拟时尝试在酶中测试 FormControlLabel 不会触发点击
- c# - 如何传递类对象邮递员
- javascript - JSON 解析引发的意外令牌错误