2016-06-09 2 views
0

Я пытаюсь периодически выполнять задачу, и я видел this. Я установил gem 'timer' используя bundle installнеинициализированная константа Таймер :: Таймеры

, а затем вот мой Timer класс:

require 'timers' 
    class Timer 

     def initialize 
      timers = Timers::Group.new 
      timers.every(5) { puts "Another 5 seconds" } 
     end 
    end 

но когда я бегу класс я столкнуться с ошибкой:

`require': cannot load such file -- timers (LoadError) 

и здесь выход от gem env:

RubyGems Environment: 
    - RUBYGEMS VERSION: 2.5.1 
    - RUBY VERSION: 2.3.0 (2015-12-25 patchlevel 0) [x86_64-linux] 
    - INSTALLATION DIRECTORY: /usr/local/rvm/gems/ruby-2.3.0 
    - USER INSTALLATION DIRECTORY: /home/ubuntu/.gem/ruby/2.3.0 
    - RUBY EXECUTABLE: /usr/local/rvm/rubies/ruby-2.3.0/bin/ruby 
    - EXECUTABLE DIRECTORY: /usr/local/rvm/gems/ruby-2.3.0/bin 
    - SPEC CACHE DIRECTORY: /home/ubuntu/.gem/specs 
    - SYSTEM CONFIGURATION DIRECTORY: /etc 
    - RUBYGEMS PLATFORMS: 
    - ruby 
    - x86_64-linux 
    - GEM PATHS: 
    - /usr/local/rvm/gems/ruby-2.3.0 
    - /usr/local/rvm/gems/[email protected] 
    - GEM CONFIGURATION: 
    - :update_sources => true 
    - :verbose => true 
    - :backtrace => false 
    - :bulk_threshold => 1000 
    - "gem" => "--no-document" 
    - "install" => "--no-rdoc --no-ri" 
    - "update" => "--no-rdoc --no-ri" 
    - REMOTE SOURCES: 
    - https://rubygems.org/ 
    - SHELL PATH: 
    - /home/ubuntu/.nvm/versions/node/v4.4.3/bin 
    - /usr/local/rvm/gems/ruby-2.3.0/bin 
    - /usr/local/rvm/gems/[email protected]/bin 
    - /usr/local/rvm/rubies/ruby-2.3.0/bin 
    - /mnt/shared/bin 
    - /home/ubuntu/workspace/node_modules/.bin 
    - /home/ubuntu/bin 
    - /usr/local/sbin 
    - /usr/local/bin 
    - /usr/sbin 
    - /usr/bin 
    - /sbin 
    - /bin 
    - /mnt/shared/sbin 
    - /opt/gitl 
    - /opt/go/bin 
    - /mnt/shared/c9/app.nw/bin 
    - /usr/local/rvm/bin 
+1

Вы 'требуют«timers''? – Stefan

+0

Не нужно сообщать нам, что вы что-то обновили. Stack Overflow показывает нам последнюю дату редактирования, плюс после определенного количества пользовательских точек отслеживание SO-версии становится доступным. –

+1

Как вы установили драгоценный камень? У вас есть несколько наборов рубинов или драгоценных камней? Скопируйте вывод 'gem env' и вставьте его в свой вопрос, форматируя его для удобочитаемости. –

ответ

0

Эта ошибка говорит нам, что код, который вы пытаетесь загрузить, не находится на LOAD_PATH. Когда вы require 'timers', вы сообщаете Ruby, чтобы искать LOAD_PATH для файла с именем timers.rb, и он не может быть расположен. Установка драгоценного камня не помещает драгоценный камень в ваш путь загрузки.

Похоже, вы не используете Bundler для управления своими зависимостями. Как только вы начнете в зависимости от стороннего кода, вы действительно должны начать использовать Bundler. Он поместит весь код в LOAD_PATH и предоставит массу полезных функций.

Если вы просто бездельничал, один вариант, вы можете сделать, это: ruby -I <path/to/timers/lib>

Это позволит Руби найти timers.rb

+0

Я просто копирую ** ruby ​​-I путь/to/timers/lib **, но он не работает. –

+0

Можете ли вы скопировать свою точную команду и вывод, пожалуйста? – JohnIV

Смежные вопросы