Я создаю серию скриптов, которые используют 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, но сохраните «требуемые числа и слова», ошибка все равно произойдет. Поэтому просто требуется, чтобы это не позволяло мне создавать новое окно браузера.
В настоящее время я буду искать, как обойтись без него, но надеюсь, что кто-то может показать мне, как я могу решить разногласия и заставить его работать. Будьте осторожны и благодарны заранее.