Неопределенный метод Ruby при использовании PriorityQueue

#ruby #rubygems #require

#ruby #rubygems #требуется

Вопрос:

Я пытаюсь использовать PriorityQueue изhttps://github.com/ldonnet/priority_queue на ruby, после его установки с gem install priority_queue , у меня возникает ошибка :

 ./example.rb:5:in `<main>': undefined method `push' for #<PriorityQueue:0x000000015ca200 @queues={}> (NoMethodError)
  

При попытке запустить пример README.md файл :

 #!/usr/bin/ruby
require 'priority_queue'

q = PriorityQueue.new
q.push "node1", 0 
q.push "node2", 1

q.min #=> "node1"

q.decrease_priority("node2", -1)

q.pop_min #=> "node2"
q.min     #=> "node1"
  

версия ruby : ruby 1.9.3p484 (2013-11-22 revision 43786) [x86_64-linux]

Спасибо

Комментарии:

1. Если вы только что сделали gem install priority_queue , то вы получаете это репозиторий: github.com/ninjudd/priority_queue у которого нет push метода.

Ответ №1:

Камень, который вы связали, является (ответвлением) PriorityQueue камня, а не priority_queue драгоценного камня. Вам нужно gem install PriorityQueue .

Я понимаю, что репозиторий, на который вы ссылаетесь, говорит gem install priority_queue в readme, но, похоже, это неверно. priority_queue Драгоценный камень из другого репозитория.