2012-05-20 1 views
0

저는 로컬 보석을 제작하고 있으며이를 테스트하고 사용할 수 있기를 바랍니다. 나는 bundle gem blah을 통해 나의 보석을 만들고있다.게시되지 않은 보석을 설치하면 "로드 할 파일이 없습니다."

  • gem list에는 보석이 표시됩니다.
  • gem contents blah은 내 GEMPATH에있는 위치에 설치되었음을 확인합니다.
  • gem "blah", :path => "path/to/gem"은 레일 콘솔에서 사용할 수 있습니다.

하지만 간단히 시도해 볼 때 내부 코드 require "file"이 작동하지 않는 것 같습니다. 나는 다음과 같은 구조의 예를 들어 보석을 시작 : /lib/blah.rb로 시작

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

:

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

내가 놀리려는에서로드하려고 할 때, 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) 

어떤 불일치의 원인이 될 수있는 아이디어가 있으십니까? 나는 Bundler와 다른 보석들에 의해 수립 된 관행들로 순서대로 일을하고있는 것처럼 느껴지지만, 어딘가에는 어색해 보인다.

답변

2

루비를 직접 실행할 때로드 경로를 지정하십시오. 이렇게하면 상대적으로 보석에 필요한 모든 파일을 찾을 수 있습니다. 레일 루트 디렉토리에 루비를 호출 할 때

는 그래서

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

또는 도움이 놀리려는 경우

pry -I lib ...

희망에 있어야합니다.

+0

고마워, iltempo. 이것은 내가 필요한 것입니다. –