0

私は最初の宝石を作ろうとしています。Ryan Biggs のチュートリアルをガイドとして使用して、次のことを行いました。

1) gem の足場を作成しました。

$ bundle gem hello_world

2) lib/hello_world.rb ファイルを編集:

require "hello_world/version"

module HelloWorld
  def hi
    "Hello world!"
  end
end

3) バンドラー経由で gem をインストール:

$ cd hello_world
$ bundle install

この時点で、実行すると

$ bundle show hello_world

それが示している

/Users/ykessler/gems/hello_world

ということで、インストールされたようです。

しかし、irb から宝石を要求しようとすると:

require '/Users/ykessler/gems/hello_world'

ロードできません:

2.0.0-p195 :003 > require '/Users/ykessler/gems/hello_world' 
LoadError: cannot load such file -- /Users/ykessler/gems/hello_world    
from /Users/ykessler/.rvm/rubies/ruby-2.0.0-p195/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require'   
from /Users/ykessler/.rvm/rubies/ruby-2.0.0-p195/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require'   
from (irb):3    
from /Users/ykessler/.rvm/rubies/ruby-2.0.0-p195/bin/irb:16:in `<main>'

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

4

1 に答える 1

6

実行する必要がありますgem build hello_world.gemspec

それをインストールするにgem install hello_worldは、gem プロジェクトのルートから実行します。これにより、ディレクトリに作成したばかりの .gem ファイルを使用してローカルの gem がインストールされます (存在する場合は ruby​​gems.org の gem ではありません)。

を実行するgem listと、それが表示されるはずです。これで、gem を要求したり、他の Ruby コードからライブラリにアクセスしたりできるようになります。書くだけですrequire 'hello_world'。フルパスを入力する必要はありません。実際、それは悪い考えです。

これはすべて、rubygems.org のドキュメント ( http://guides.rubygems.org/make-your-own-gem/ ) でかなり明確に説明されています。とてもわかりやすくて役に立ち、最初の宝石の作り方をここで学びました。

于 2013-08-17T20:43:38.203 に答える