パッケージシステム
たとえば 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 コマンドがいちいち遅い
- https://subtech.g.hatena.ne.jp/cho45/20071006/1191667604
- quick index でさえ結構遅いのはなんでだろう
- bulk update が遅いのはいうまでもない
- はやければいいけど……
- 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ファイルぐらいに