Не удается найти гемы под управлением ruby ​​‹my_script›.rb — но работает в IRB

У меня возникают проблемы, когда я пытаюсь запустить свой .rb-файл с помощью команды Ruby, пытающейся получить доступ к драгоценному камню. Я пытаюсь использовать драгоценный камень Ruby-Whois. У меня есть пример сценария ниже, когда я пытаюсь выполнить его через «ruby whois.rb», я получаю это сообщение об ошибке:

./whois.rb:6: неинициализированная константа Whois (NameError)

Однако, если я запускаю один и тот же скрипт построчно в IRB, я получаю ожидаемый результат. Что может быть причиной этого?

Ниже приведен whois.rb.

require "rubygems"
require "whois"

domain = "google.com"

c = Whois::Client.new
a = c.query(domain)

puts a

person maetthew    schedule 26.02.2011    source источник
comment
Вы используете одну и ту же версию ruby ​​для исполняемого файла ruby и исполняемого файла irb?   -  person johusman    schedule 26.02.2011
comment
@johusman Понятия не имею. Как я могу проверить? что дает мне: bash-3.2$ which irb /usr/bin/irb bash-3.2$ which ruby ​​/usr/bin/ruby   -  person maetthew    schedule 26.02.2011
comment
Чтобы ответить на ваш вопрос: это, вероятно, символические ссылки. Попробуйте readlink -f $(which irb) и readlink -f $(which ruby). Но я считаю, что @jmatraszek может что-то понять в ответе ниже.   -  person johusman    schedule 26.02.2011


Ответы (1)


измените имя вашего файла - в require 'whois' есть двусмысленность, и ruby ​​​​требует вашего файла вместо драгоценного камня. когда вы делаете это построчно в irb ruby ​​знает, что именно вы хотите потребовать, так что все работает.

person jmatraszek    schedule 26.02.2011
comment
Сладко это было! Никогда не думал, что при запросе whois будет искать мой собственный whois.rb. Большое спасибо! - person maetthew; 26.02.2011