3

追加のクラスを必要とする単純なルビー宝石を開発しています。以下は、私の gemname/lib ディレクトリのファイルです。

lib/
   gemname/
          base.rb
          version.rb
   gemname.rb

require "gemname/base"gemname.rbにステートメントを含めました。

gem をローカルでビルドしてインストールした後、 および に移動するirbrequire gemname、次のエラーが表示されます。

LoadError: cannot load such file -- ./gemname/base
    from /home/swaroop/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:51:in `require'
    from /home/swaroop/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:51:in `require'
    from /home/swaroop/.rvm/gems/ruby-2.0.0-p0/gems/gemname-0.0.6/lib/gemname.rb:2:in `<top (required)>'
    from /home/swaroop/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:116:in `require'
    from /home/swaroop/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:116:in `rescue in require'
    from /home/swaroop/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:122:in `require'
    from (irb):1
    from /home/swaroop/.rvm/rubies/ruby-2.0.0-p0/bin/irb:13:in `<main>'

どこが間違っていますか?

4

2 に答える 2

5

ファイルgemname.gemspecには次のようなものが含まれている必要があります。

spec.files = `git ls-files -z`.split("\x0")

git でファイルをバージョン管理していないため、エラー メッセージが表示されます。rake install使用する前に実行し、実行するgit場合

irb
require "gemname"

これによりエラーが発生します。

これが理由です。このようなインストールパスを見てください。

gem list -d gemname  # this should return something like this

gemname (0.0.1)
    Author: your name
    License: MIT
    Installed at: /Users/your_name/.rbenv/versions/2.0.0/lib/ruby/gems/2.0.0

場所を開いて、gem フォルダーを見つけます。そこを見るべきnothingです。

ここで、ファイルを git に追加し、少なくとも 1 回コミットします。

git init
git add .
git commit -m "init"

それrake installを要求してもエラーは発生しません。

irb
require "gemname" # no error, and you should see files in this gem's install folder.
于 2014-02-06T14:20:26.083 に答える
2

あなたのlib/gemname.rb

require 'gemname/base.rb'

gemname.specification ファイルの希望は

s.files = Dir["README.md","Gemfile","Rakefile", "spec/*", "lib/**/*"]

たとえば、私の宝石を参照してください

https://github.com/rajcybage/google_book

また

http://rubygems.org/gems/google_book

于 2013-09-02T10:52:37.227 に答える