2010-05-25 97 views
3

當我們一起使用Watir和Highline時,我遇到了一些奇怪的功能。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的文檔發現,

如果@question之前設置要求()是 調用,參數被忽略, 該對象(必須是 海萊恩::問題)使用代之以驅動 的過程。

對不起,我不是一個紅寶石大師:-(

+0

你在做什麼?問題是什麼?什麼是Highline? – 2010-05-26 09:36:16

回答

5

證實,它確實表現得像是

澤利科:。http://highline.rubyforge.org/

grundic:這個問題是不是有相關的Watir本身,但它與另一個名爲s4t-utils的庫(http://s4t-utils.rubyforge.org/)有關,它也有一個類似於HighLine的「ask」的「ask」方法。s4t-utils是gem「用戶選擇」的依賴關係,它依次是依賴於一個Watir的依賴的「commonwatir」 o,在發出「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 

亞爾莫Pertman