私のプロジェクトはSunspotに依存しており、Sunspot はprogress_barに依存しています。progress_bar は、 というクラス (モジュール/名前空間の外側) を定義しますProgressBar
。
私のテスト コードはminitest-reportersに依存しており、これはruby -progressbar に依存しています。ruby-progressbar は と呼ばれるクラス (モジュール/名前空間の外側でも) を定義しますProgressBar
。
Ruby に慣れていない私は、2 つのProgressBar
クラスが競合しているという事実を突き止めるのに非常に時間がかかりました。このような問題を防ぐために自分のコードに名前を付ける方法は知っていますが、サードパーティのコードでこのような衝突を解決する方法はありますか?
更新:
minitest-reporters の所有者は、(明らかに放棄された) ProgressBar の使用を、さらに別の進行状況ライブラリであるPowerBarに非常に親切に置き換えました。したがって、これは私の問題に対処しました。しかし、PowerBar はグローバル名前空間も汚染します! これはRubyでは病的と思われます...