Команда Require не работает в bash irb на Snow Leopard - PullRequest
8 голосов
/ 29 августа 2011

Я работаю над упражнением «Трудный путь» Зед Шоу 25

.

http://ruby.learncodethehardway.org/ex25.html

Когда я перехожу в каталог, содержащий файл ruby ​​ex25.rb и запускаю IRB, я получаю следующие ошибки:

Larson-2:~ larson$ cd Ruby
Larson-2:Ruby larson$ ls
ex25.rb
Larson-2:Ruby larson$ irb
ruby-1.9.2-p290 :001 > require 'ex25'
LoadError: no such file to load -- ex25
    from /Users/larson/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
    from /Users/larson/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
    from (irb):1
    from /Users/larson/.rvm/rubies/ruby-1.9.2-p290/bin/irb:16:in `<main>'
ruby-1.9.2-p290 :002 > 

Кажется, команда require здесь не работает. Что-то мне не хватает?

Я также попытался потребовать './25', как предложено, и получить эти ошибки:

Larson-2:Ruby larson$ irb
ruby-1.9.2-p290 :001 > require './ex25'
SyntaxError: /Users/larson/Ruby/ex25.rb:1: invalid multibyte char (US-ASCII)
    from /Users/larson/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
    from /Users/larson/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
    from (irb):1
    from /Users/larson/.rvm/rubies/ruby-1.9.2-p290/bin/irb:16:in `<main>'

Ответы [ 2 ]

14 голосов
/ 29 августа 2011

Это потому, что рабочий каталог больше не находится в пути Ruby в Ruby 1.9.2. Это работает:

require './ex25'
2 голосов
/ 31 августа 2011

Это на самом деле ошибка с моей стороны, когда я писал упражнение. @mischa отлично подходит для своего решения, но по мере продвижения по книге вы заметите, что в последующих упражнениях вместо require используется команда require_relative.

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

...