Ruby AMQP неинициализированная постоянная ошибка - PullRequest
0 голосов
/ 28 мая 2010

Я пробовал этот код (полученный из онлайн-статьи здесь: http://www.randomhacks.net/articles/2009/05/08/chat-client-ruby-amqp-eventmachine-shoes)

require 'rubygems'
gem 'amqp'
require 'mq'

unless ARGV.length == 2
  STDERR.puts "Usage: #{$0}  "
  exit 1
end
$channel, $nick = ARGV

AMQP.start(:host => 'localhost') do
  $chat = MQ.topic('chat')

  # Print any messages on our channel.
  queue = MQ.queue($nick)
  queue.bind('chat', :key => $channel)
  queue.subscribe do |msg|
    if msg.index("#{$nick}:") != 0
      puts msg
    end
  end

  # Forward console input to our channel.
  module KeyboardInput
    include EM::Protocols::LineText2
    def receive_line data
      $chat.publish("#{$nick}: #{data}",
                    :routing_key => $channel)
    end
  end
  EM.open_keyboard(KeyboardInput)
end

Но в итоге вышла следующая ошибка:

chat.rb:11:in `': uninitialized constant AMQP (NameError)

После этого я попробовал другой пример кода с AMQP в моем dev env, но все показывает мне эту ошибку. Так что проблема не в коде, проблема с моим dev env. Кто-нибудь может указать мне на проблемы с моим dev env. Заранее спасибо.

1 Ответ

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

У меня установлен AMQP и интегрирован с Ruby (через гем зайчика). Может быть, я могу помочь?

Скорее всего, при установке gem не удалось скомпилировать библиотеки amqp. Удалите драгоценный камень и переустановите, внимательно изучив полученные сообщения. Возможно, вам не хватает только сторонних библиотек.

На какой ты платформе?

...