Установка неопубликованного драгоценного камня приводит к тому, что такой файл не загружается

Я создаю местный драгоценный камень, и я хочу иметь возможность протестировать и использовать его в pry. Я создаю свой драгоценный камень через bundle gem blah.

  • gem list показывает драгоценный камень.
  • gem contents blah подтверждает, что он установлен в моем GEMPATH.
  • gem "blah", :path => "path/to/gem" делает его доступным в консоли rails.

Но когда я просто пытаюсь это сделать, его внутренний код require "file" кажется неработающим. Я начал пример драгоценного камня со следующей структурой:

├── Gemfile
├── LICENSE
├── README.md
├── Rakefile
├── blah.gemspec
├── lib
│   ├── blah
│   │   ├── ugh.rb
│   │   └── version.rb
│   └── blah.rb
└── pkg
    └── blah-0.0.1.gem

Где /lib/blah.rb начинается с:

require "blah/version"
require "blah/ugh"

И когда я пытаюсь загрузить его в pry, IRB или через ruby -rubygems -e 'require "blah"', я получаю:

~/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:55:in `require': cannot load such file -- blah/ugh (LoadError)

Любые идеи, что может быть причиной этого несоответствия? Я чувствую, что делаю все в порядке с практиками, установленными Бандлером и другими жемчужинами, но, возможно, я где-то ошибаюсь.


person Joshua Cody    schedule 20.05.2012    source источник


Ответы (1)


Попробуйте указать путь загрузки при непосредственном запуске ruby. Это гарантирует, что все ваши файлы, которые вам нужны относительно вашего драгоценного камня, также будут найдены.

Поэтому при вызове ruby ​​в корневом каталоге rails это должно быть

ruby -rubygems -Ilib -e 'require "blah"'

или в случае любопытства

pry -I lib ...

Надеюсь, это поможет.

person iltempo    schedule 20.05.2012
comment
Большое спасибо, iltempo. Это было именно то, что мне было нужно. - person Joshua Cody; 21.05.2012