gpt4 book ai didi

ruby - Watir 更改 highline 的 "ask"方法

转载 作者:数据小太阳 更新时间:2023-10-29 07:31:15 24 4
gpt4 key购买 nike

当同时使用 Watir 和 Highline 时,我遇到了一些奇怪的功能。

这是一个简单的例子:

require 'highline/import'
comp = ask("Company? ") { |q| q.default = "MySuperCompany" }
puts comp

require 'watir'
comp = ask("Company? ") { |q| q.default = "MySuperCompany" }
puts comp

这是一个输出:

Company?  |MySuperCompany|
MySuperCompany
[Company? ] =>
Company?

也许这是一个错误?我还在 highline 的文档中发现,

If @question is set before ask() is called, parameters are ignored and that object (must be a HighLine::Question) is used to drive the process instead.

抱歉,我不是 ruby​​ 大师 :-(

最佳答案

确认。它确实表现得像那样。

泽利科:http://highline.rubyforge.org/

grundic:这个问题与 Watir 本身无关,但它与另一个名为 s4t-utils ( http://s4t-utils.rubyforge.org/ ) 的库有关,它也有一个“ask”方法,其行为类似于 HighLine 的“ask”。 s4t-utils 是 gem“user-choices”的依赖项,而后者又依赖于“commonwatir”,后者是 Watir 的依赖项。因此,在您发出“require 'watir'”之后,s4t-utils 将被加载,因此“ask”方法将被覆盖。

您可以使用 HighLine.new.ask 而不是仅仅“询问”来解决问题:

require "highline/import"
comp = ask("Company? ") { |q| q.default = "MySuperCompany" }
puts comp

require 'watir'
comp = ask("Company? ") { |q| q.default = "MySuperCompany" }
puts comp

comp = HighLine.new.ask("Company? ") { |q| q.default = "MySuperCompany" }
puts comp

产生:

Company?  |MySuperCompany|  my
my
[Company? ] => my
my
Company? |MySuperCompany| my
my

贾莫·珀特曼

关于ruby - Watir 更改 highline 的 "ask"方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2903200/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com