Рубиновый драгоценный камень Twitter

-- ОБНОВИТЬ --

Хорошо, это исправлено. Вот что я сделал. полностью удалите все рубины и рубиновые камни. затем установите ruby1.9.1-full и rubygems1.9.1, затем установите гем twitter.

Привет, народ,

У меня проблемы с работой с гемом Twitter. Я использую рубин 1.8.7

После установки, когда я пытаюсь запустить простой скрипт, я получаю эту ошибку

ruby twitter.rb ./twitter.rb:5: неинициализированная константа Twitter (NameError) из /usr/lib/ruby/1.8/rubygems/custom_require.rb:31: в gem_original_require' from /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:inrequire 'из twitter.rb: 2

Я запускаю это в коробке с Ubuntu. Я проверил с помощью gem -list и вижу, что там указан Twitter (1.1.0).

это код, который я пытаюсь запустить

require "rubygems"
require 'twitter'


puts Twitter.user_timeline("test").first.text 

Любые идеи ?


person jramirez    schedule 11.01.2011    source источник
comment
Я только что столкнулся с этой проблемой, и оказалось, что rubygems сообщал сборщику о необходимости установить неправильную версию гема. Я явно установил версию в сборщике и запустил обновление пакета, и он снова заработал.   -  person kayluhb    schedule 21.09.2011


Ответы (3)


Я считаю, что это работает только с Ruby 1.9. Если вы хотите использовать twitter gem, попробуйте версию 0.9 с Ruby 1.8.x

person gouravtiwari21    schedule 11.01.2011
comment
хорошо, я удалил ruby ​​1.8.7 install 1.9.2 также установил rubygems 1.9.2, и теперь я получаю эту ошибку twitter.rb: 2: in require': no such file to load -- twitter (LoadError) from twitter.rb:2:in ‹main› ' - person jramirez; 11.01.2011
comment
Я использовал pik для установки ruby1.9.2 поверх моей предыдущей версии ruby ​​1.8.7. Системные гемы обновлять не требовалось. Что я могу думать прямо сейчас, так это то, что, поскольку вы обновились до ruby ​​1.9.2, вам нужно повторно выполнить команду gem install twitter, поскольку гем был установлен ранее под ruby-1.8.7, и теперь вы установили ruby ​​1.9.2 - person gouravtiwari21; 11.01.2011

Это работает для меня:

ruby-1.9.2-p0 > require 'twitter'
 => true 
ruby-1.9.2-p0 > puts Twitter.user_timeline("test").first.text 
TExES Pedagogy and Professional Responsibilities EC-12 Teacher Certification Test Prep Study Guid… - by Sharon A Wynne http://amzn.to/f3kF74
 => nil 

какую версию Ruby вы используете?

person ennuikiller    schedule 11.01.2011
comment
правильно, извините, я забыл поставить этот ruby ​​-v ruby ​​1.8.7 (10-01-10 patchlevel 249) [i486-linux] - person jramirez; 11.01.2011

Комментарий gouravtiwari21, похоже, решает проблему, но неверно предполагать, что для твиттер-гема требуется версия 0.9.0, если вы хотите запускать его с помощью Ruby 1.8.x.

Вы можете проверить совместимость версий здесь: http://travis-ci.org/#!/jnunemaker/twitter

Он показывает, что твиттер-гем, работающий с установками Ruby от 1.8.7.

Для меня это была проблема с правильными зависимыми драгоценными камнями, а также с правильными версиями.

Вот как у меня это заработало:

Я побежал:

sudo gem list

И сравнил версии конкретных драгоценных камней с тем, что я нашел здесь: https://github.com/jnunemaker/twitter/blob/master/HISTORY.md (я просто искал слово «зависимость», чтобы узнать, какие версии интересуют twitter.

Я также нашел это различие: https://github.com/jnunemaker/twitter3c201b3d2c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c08c8 а>

И я сравнил перечисленные там драгоценные камни с тем, что я установил, и просто убедился, что моя система соответствует тому, что я видел в примечаниях к версии. Часто случалось так, что у меня было несколько версий драгоценного камня, и по какой-то причине более низкая версия имела приоритет.

Я не уверен, почему мне все еще нужно добавить

gem 'twitter', '1.7.1'

в мой Gemfile, но, увы, это последний шаг, необходимый для того, чтобы все это работало.

Не забудьте перезагрузить сервер, и все будет хорошо!

person djibouti33    schedule 09.09.2011
comment
Спасибо, я попробую, если снова столкнусь с той же проблемой. - person jramirez; 09.09.2011