나는 루비를 배우고 있으며 보석 파일을 만드는 법을 시험하고 싶다. 나는 내 컴퓨터에 다음과 같은 것을 설치했다. 루비 1.9.3p362 (2012년 12월 25일 수요일 수정 38,607) x86_64에 리눅스] Bundler를 버전 1.2.3 퀴 버전 10.0.3루비 보석 만들기
I가 bundle gem hello_gem
를 사용 일품을 만들었다. 나는 hello_gem.rb
module HelloGem
class Base
def self.hello
puts "Hello Ruby Gem #{HelloGem::VERSION}"
end
end
end
다음과 같은 내 폴더 구조가에 다음 예제 코드를 추가했다.
├── Gemfile
├── Gemfile.lock
├── hello_gem.gemspec
├── lib
│ ├── hello_gem
│ │ └── version.rb
│ └── hello_gem.rb
├── LICENSE.txt
├── Rakefile
├── README.md
그럼 나는 rake install
을 사용하여 보석을 만들었습니다. 그런 다음 irb
을 시작했으며 다음을 실행할 수 있습니다.
1.9.3-p362 :001 > require 'hello_gem'
=> true
1.9.3-p362 :002 > HelloGem::Base.hello
Hello Ruby Gem 0.0.1
=> nil
1.9.3-p362 :003 >
lib 폴더로 코드를 옮기고 싶을 때 문제가 발생합니다. 나는 lib/hello_gem/base.rb
을 만들고 거기에 위의 코드를 추가했습니다. 그리고 hello_gem.rb
에서 방금 require "hello_gem/base"
을 사용했습니다. 이제 내 프로젝트는 다음과 같습니다.
├── Gemfile
├── Gemfile.lock
├── hello_gem.gemspec
├── lib
│ ├── hello_gem
│ │ ├── base.rb
│ │ └── version.rb
│ └── hello_gem.rb
├── LICENSE.txt
├── Rakefile
├── README.md
무슨 일이 있었 다음과 같은 오류를 테스트 할 rake install
및 irb
을 사용을 사용하여 보석을 빌드 할 때.
1.9.3-p362 :001 > require 'hello_gem'
LoadError: cannot load such file -- hello_gem/base
from /home/sandarenu/.rvm/rubies/ruby-1.9.3-p362/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from /home/sandarenu/.rvm/rubies/ruby-1.9.3-p362/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from /home/sandarenu/.rvm/gems/ruby-1.9.3-p362/gems/hello_gem-0.0.1/lib/hello_gem.rb:2:in `<top (required)>'
from /home/sandarenu/.rvm/rubies/ruby-1.9.3-p362/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:60:in `require'
from /home/sandarenu/.rvm/rubies/ruby-1.9.3-p362/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:60:in `rescue in require'
from /home/sandarenu/.rvm/rubies/ruby-1.9.3-p362/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:35:in `require'
from (irb):1
from /home/sandarenu/.rvm/rubies/ruby-1.9.3-p362/bin/irb:16:in `<main>'
1.9.3-p362 :002 >
나는이 문제를 해결하는 방법을 찾을 수 없습니다. 누군가 내가 여기서 잘못하고있는 것을 말할 수 있다면 큰 도움이 될 것입니다.
미리 감사드립니다.
재생할 수 없음 : http://pastie.org/5805403. 시험을 위해 신선한 IRB를 개봉하셨습니까? –