インストールしたはずのgemがrequireできない時


Ruby gems

毎日gemづくりに勤しむ、とっとこgem太郎こと北村です。こんにちは。

gemを作れば少しはgemの仕組みもわかるだろうと思っているのですが、相変わらずハマりまくる日々です。

インストールした(できた)のにrequireできないんですけど

つまり、こういう事です。

$gem install pkg/hoge-0.0.1.gem (それか rake install)
Successfully installed hoge-0.0.1
1 gem installed

$gem which hoge
ERROR:  Can't find ruby library file or shared library hoge

ここでは which hoge で、怒られていますがirbとか起動して普通にrequireをしても怒られます。

今回の経験から、世の中には大きく2パタンの怒られルートがある事を発見しました。

ruby1.8系はrequire rubygems

一昨年くらいは毎回これで怒られてましたね。
単純に使うgemだけrequireしてはダメで、最初に rubygems自体をrequireしないとアカンっていう。

けど1.9以降は書かなくてよくなったので、今後このパタンは絶滅に向かうかと思われます。

gemのソースのファイル名でrequireしなきゃダメだったww

このパタンでハマる人って多分世の中に0.0001%もいないと思います。
けど自分はハマりました。

今回、gemのパッケージ名のhogeで開発進めていたのですが、何故かソースのファイル名とlib/以下のディレクトリ名を ho_geにしていました。

この場合、何が起こるかというと rake install などで hogeがインストールされ gem list で確認しても hoge(0.0.1)の存在は確認できるけど、
requireする時は ho_ge でrequireしないと怒られる
という事になるようです。

ていうかですね。 俺はなぜho_geをソース・ファイルの名前にしてgemを作り始めたのか自分で謎ですわ!!

おわり

 

2014-12-18 | Posted in 日記No Comments » 


関連記事

Comment





Comment



*