今天注意到在pry中运行.bootstrap-duallistbox-container select option:hover,
.bootstrap-duallistbox-container select option:focus,
.bootstrap-duallistbox-container select option:active {
background-color: red;
}
总是返回false。但是,如果我在irb中执行相同的操作,则返回true。此外,当fileutils设置为false时,它仍然有效!
首先我认为fileutils是pry的依赖,这可以解释为什么它已经被要求了。但事实并非如此。我在这里遗漏了一些基本的东西吗?
require fileutils
示例:
首先,我使用pry制作一些文件夹。 fileutils已经加载了吗?请注意,即使fileutils返回false,它仍然有效:
[07:40] ~/Desktop $ gem dependency pry
Gem pry-0.10.2
bundler (~> 1.0, development)
coderay (~> 1.1.0)
method_source (~> 0.8.1)
slop (~> 3.4)
Gem pry-theme-1.1.3
bundler (~> 1.0, development)
coderay (~> 1.1)
json (~> 1.8)
我删除了刚创建的文件夹...
[07:44] ~/Desktop $ ls
[07:44] ~/Desktop $ ########## (nothing)
[07:44] ~/Desktop $ pry
[1] pry(main)> require 'fileutils'
=> false
[2] pry(main)> FileUtils::mkdir_p 'foo'
=> ["foo"]
[3] pry(main)> Dir.mkdir('bar')
=> 0
[4] pry(main)> Dir["/home/caveman/Desktop/*"]
=> ["/home/caveman/Desktop/foo", "/home/caveman/Desktop/bar"]
现在我再次尝试使用irb:
[07:48] ~/Desktop $ rm -r *
[07:48] ~/Desktop $ ls
[07:48] ~/Desktop $ ########## (nothing again)
这就是我的想法。即使我在irb中将'fileutils'设置为false,它仍然有效:
[07:49] ~/Desktop $ irb
irb(main):001:0> require 'fileutils'
=> true
irb(main):002:0> FileUtils::mkdir_p 'foo2'
=> ["foo2"]
irb(main):003:0> Dir.mkdir 'bar2'
=> 0
irb(main):004:0> Dir["/home/caveman/Desktop/*"]
=> ["/home/caveman/Desktop/bar2", "/home/caveman/Desktop/foo2"]
答案 0 :(得分:1)
首先,FileUtils不是宝石,所以它永远不会显示为宝石依赖。
其次,require
的返回值并不告诉您是否要求成功(如果失败,则会引发异常)。 false
只是意味着它已经加载了。你的陈述
即使我设置了' fileutils'在irb中为假
没有意义。您根本没有设置任何内容,只是再次调用require
,第二次返回false。
您所观察到的只是意味着pry(或其中一个依赖项)直接加载FileUtils或加载一些加载FileUtils的标准库。它看起来像pry需要&#t; tempfile',它本身需要' tmpdir'这又需要' fileutils'。