2014-12-28 2 views
0

Я создаю серию скриптов, которые используют Ruby и Watir. Некоторые из них используют драгоценные камни.Почему «цифры и слова», вызывающие эту ошибку?

Один конкретный драгоценный камень я использую «цифры и слова», которая позволяет изменить значение «5» до «пять» или изменить «1000000» на «Миллион» и т.д.

Я испытываю мой первый конфликт драгоценных камней и не смог разобраться, могу ли я заставить эти драгоценные камни работать вместе, или мне придется отказаться и использовать то или другое.

Я делаю это в Mac Airbook с Yosemite, но видел ту же проблему на Mavericks.

Вот мои первоначальные местные драгоценные камни, когда я начал.

Первоначальный список драгоценных камней:

  • рубинового 2.2.0p0 (2014-12-25 редакция 49005) [x86_64-darwin14]
  • BigDecimal (1.2.6)
  • пакетирования (1.7.9)
  • пакетирования-разрядить (1.0.2)
  • исполняемые-крюки (1.3.2)
  • гем-оберток (1.2.7)
  • И.О. -console (0.4.3)
  • JSON (1.8.1)
  • MiniTest (5.4.3)
  • power_assert (0.2.2)
  • Psych (2.0.8)
  • рейк (10.4. 2)
  • RDoc (4.2.0)
  • RubyGems-пакетирования (1.4.4)
  • РВМ (1.11.3.9)
  • тест-блок (3.0.8)

Я добавил драгоценный камень: Watir-WebDriver (Watir-WebDriver-0.6.11)

который также установлен:

  • WebSocket-1.2.1
  • FFI-1.9. 6
  • childprocess-0.5.5
  • rubyzip-1.1.6
  • multi_json-1.10.1
  • селеном WebDriver-2.44.0

Я также установил драгоценный камень: numbers_and_words (numbers_and_words-0.10.0)

, которые также установили:

  • i18n-0,7 ,0
  • thread_safe-0.3.4
  • tzinfo-1.2.2
  • ActiveSupport-4.2.0

ошибка происходит только в сценариях, которые требуют "цифры и слова", если я что из и удалить код, который его вызывает, все работает нормально.

Вот некоторые рубин код, который будет засчитывать ошибку:

#!/usr/bin/ruby 
require 'watir-webdriver' 
require 'numbers_and_words' 
account_num = 12 
last_name = "Smith" 
account_num_in_words = account_num.to_i.to_words 
last_name = "#{last_name}, #{account_num_in_words}" 
@browser = Watir::Browser.new :chrome 
@browser.goto ("https://github.com/kslazarev/numbers_and_words") 

Когда я пытаюсь запустить это я получаю следующее: (заметьте, я попытался это с и без РВМ и различные комплекты драгоценных камней.)

/Users/HOME/.rvm/gems/[email protected]/gems/activesupport-4.2.0/lib/active_support/core_ext/object/json.rb:37:in `to_json_with_active_support_encoder': uninitialized constant ActiveSupport::JSON (NameError) 
from /Users/HOME/.rvm/gems/[email protected]/gems/multi_json-1.10.1/lib/multi_json/adapters/json_common.rb:21:in `dump' 
from /Users/HOME/.rvm/gems/[email protected]/gems/multi_json-1.10.1/lib/multi_json/adapter.rb:24:in `dump' 
from /Users/HOME/.rvm/gems/[email protected]/gems/multi_json-1.10.1/lib/multi_json.rb:136:in `dump' 
from /Users/HOME/.rvm/gems/[email protected]/gems/selenium-webdriver-2.44.0/lib/selenium/webdriver/common/json_helper.rb:23:in `json_dump' 
from /Users/HOME/.rvm/gems/[email protected]/gems/selenium-webdriver-2.44.0/lib/selenium/webdriver/remote/http/common.rb:27:in `call' 
from /Users/HOME/.rvm/gems/[email protected]/gems/selenium-webdriver-2.44.0/lib/selenium/webdriver/remote/bridge.rb:640:in `raw_execute' 
from /Users/HOME/.rvm/gems/[email protected]/gems/selenium-webdriver-2.44.0/lib/selenium/webdriver/remote/bridge.rb:101:in `create_session' 
from /Users/HOME/.rvm/gems/[email protected]/gems/selenium-webdriver-2.44.0/lib/selenium/webdriver/remote/bridge.rb:68:in `initialize' 
from /Users/HOME/.rvm/gems/[email protected]/gems/selenium-webdriver-2.44.0/lib/selenium/webdriver/chrome/bridge.rb:29:in `initialize' 
from /Users/HOME/.rvm/gems/[email protected]/gems/selenium-webdriver-2.44.0/lib/selenium/webdriver/common/driver.rb:37:in `new' 
from /Users/HOME/.rvm/gems/[email protected]/gems/selenium-webdriver-2.44.0/lib/selenium/webdriver/common/driver.rb:37:in `for' 
from /Users/HOME/.rvm/gems/[email protected]/gems/selenium-webdriver-2.44.0/lib/selenium/webdriver.rb:67:in `for' 
from /Users/HOME/.rvm/gems/[email protected]/gems/watir-webdriver-0.6.11/lib/watir-webdriver/browser.rb:46:in `initialize' 

Это специально не работает на линии, которая пытается создать новый браузер.

Если удалять ссылки на «числа и слова», все работает отлично, но как только я это требую, код, вызывающий новый браузер веб-драйвера, терпит неудачу.

Я новичок в том, где ошибки не сразу указывают на то, как решить проблему, и были бы признательны за помощь в поиске решения для хранения обоих драгоценных камней (хотя я также рассмотрю альтернативные драгоценные камни).

Если я удалю весь код, связанный с number_and_words, но сохраните «требуемые числа и слова», ошибка все равно произойдет. Поэтому просто требуется, чтобы это не позволяло мне создавать новое окно браузера.

В настоящее время я буду искать, как обойтись без него, но надеюсь, что кто-то может показать мне, как я могу решить разногласия и заставить его работать. Будьте осторожны и благодарны заранее.

ответ

0

Один из возможных ответов - просто изменить драгоценные камни или написать свою собственную функцию. Однако я решил использовать драгоценный камень «для слов» https://github.com/taimur-akhtar/to_words вместо этого.

Однако я по-прежнему ценю обратную связь о том, почему произошло это столкновение, и что можно и чего нельзя сделать по этому поводу.

Смежные вопросы