Watir меняет метод "спросить" - PullRequest
3 голосов
/ 25 мая 2010

При использовании 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 установлен до того, как ask () вызывается, параметры игнорируются и этот объект (должен быть HighLine :: Question) используется для езды процесс вместо этого.

Извините, я не рубиновый гуру: - (

1 Ответ

5 голосов
/ 28 мая 2010

Подтверждено. Это действительно ведет себя так.

Желько: http://highline.rubyforge.org/

grundic: Проблема не связана с самим Watir, но связана с другой библиотекой, называемой s4t-utils (http://s4t -utils.rubyforge.org / ), в которой также есть запрос msgstr "метод, ведущий себя как" спросить "HighLine. 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

Ярмо Пертман

...