たとえば use みたいな感じのシステムをつくるとしても、あんまり使うイメージがうかばない。require "use" みたいなのは必要になってしまうし、require とは全然違う挙動をするから、なじむまでこまるし、中で何をやっているのかパっと見わからないから、ちょっとこわいし……(require はなにやってるのかわかりやすい)
というか RubyGems の何がいやか。なにを改善したらいいのか。パッチかけばすむのか。それでできるならそれにこしたことない。
- パッケージ名 (gem.spec.name) と require で使う名前と、実際使う名前がそれぞれ関係ない。
- auto_require つかって gem メソッド使えば少しはいい?
- 1.9.1 で標準添付になったら、もっと gem メソッド活用してもいいかもなぁ
- 実際使う名前がちがうのはどうしたらいいんだ。
- でもこれは gem に限ってない。ostruct とか optparse とかも実際使うなまえと違うのでときどき混乱する。さすがによく使うから覚えたけど……
- Python では import, Perl では use がある
- require で読みこまれるファイルに新しいクラス/モジュールが定義されているとは限らない
- autoload ってどういうケースを想定してるんだろう。
- あるクラス・モジュール・メソッドがどこで定義されたものなのか簡単に知る方法がない
- ビルトインの拡張とかどうするの
- クラス定義のよみこみと機能の拡張はわけて考えてもいい?
- require "test/unit" と use "Test::Unit" は後者だと定義されるだけみたいなの。実装できない
- パッケージ名に統一感が全くない
- camelcase だったり、そうじゃなかったり、アンダースコアいれたりいれなかったり
- foobar-ruby とか ruby-foobar みたいなのおおい。 RubyGems って時点で ruby つかうのに
- 政治的だから諦めるしかない?
- rubyforge がダサい。
- 機能での検索がしにくい。カテゴリわけされてない
- プロジェクトだけあって中身がないのが割とある
- 他にカッチョいい source があって、デフォルトで使用できればいい
- gem とドキュメントだけホストして、カテゴリわけされていればいい
- gem コマンドがいちいち遅い
- require "rubygems" に抵抗がある
- なんか一杯読みこむ
- ほんとに読みこむだけでこんなに使ってるの?
require "rubygems" で定義される Module(Class) と読みこまれるファイル
["Gem::OperationNotSupportedError", "Gem::Exception", "Gem::LoadError", "Gem"]
["rubygems.rb",
"rbconfig.rb",
"rubygems/rubygems_version.rb",
"thread.rb",
"rbconfig/datadir.rb",
"rubygems/source_index.rb",
"rubygems/user_interaction.rb",
"rubygems/remote_fetcher.rb",
"net/http.rb",
"net/protocol.rb",
"socket.bundle",
"timeout.rb",
"uri.rb",
"uri/common.rb",
"uri/generic.rb",
"uri/ftp.rb",
"uri/http.rb",
"uri/https.rb",
"uri/ldap.rb",
"uri/mailto.rb",
"yaml.rb",
"yaml/syck.rb",
"syck.bundle",
"yaml/basenode.rb",
"yaml/ypath.rb",
"yaml/baseemitter.rb",
"yaml/constants.rb",
"yaml/encoding.rb",
"yaml/error.rb",
"yaml/loader.rb",
"yaml/stream.rb",
"yaml/rubytypes.rb",
"date.rb",
"rational.rb",
"date/format.rb",
"yaml/types.rb",
"zlib.bundle",
"rubygems/digest/sha2.rb",
"digest/sha2.bundle",
"digest.bundle",
"rubygems/digest/digest_adapter.rb",
"forwardable.rb",
"time.rb",
"parsedate.rb",
"rubygems/specification.rb",
"rubygems/version.rb",
"rubygems/security.rb",
"rubygems/gem_openssl.rb",
"openssl.rb",
"openssl.bundle",
"openssl/bn.rb",
"openssl/cipher.rb",
"openssl/digest.rb",
"openssl/ssl.rb",
"openssl/buffering.rb",
"openssl/x509.rb",
"rubygems/custom_require.rb"]
けっきょくいい方法がおもいつかなくて require にもどっていくのだなぁ……飽きるまで考えてみよう
依存ライブラリは次のバージョンから?かなり減るらしい。6ファイルぐらいに