Rubyのモジュールを名前空間で使っているのかMix-inで使っているのか
Rubyのモジュールですが、名前空間
の提供とMix-in
の提供との2つの機能があるようです。
書かれたモジュールの判断
人のソースを読んでいてモジュールが名前の衝突を避けるためといったような名前空間
のために使っているのか、はたまたクラスの機能を拡張するためのMix-in
のために使っているのか雰囲気でわかりますが、なにか明確な指標でわかったりするものなのでしょうか?
(どこからもincludeされていないかどうかプロジェクト全体でgrep
して、なければ名前空間
として使用という判断でしょうか?)
自分の書いたモジュールが今後どうなるのか
自分が書いたモジュールの場合、自分は名前空間
のために書いたつもりだったのに、Mix-in
としていつまにか使われていたというような事態が起こったりはしないものなのでしょうか? またその逆で、Mix-in
のつもりで書いたのに名前空間
として使われることとなったということもありえそうなのですが、そういったことにはならいのでしょうか。(そうするとコードの秩序が保てなくなるような気がします。コミニケーションによって起こらないようにするのでしょうか)