私は、複雑なプロジェクトの一連の Rake タスクを使っていくつかのトリックを行っており、一度にチャンクで複雑さの一部を徐々にリファクタリングしています。これにより、以前のプロジェクト メンテナーが残した依存関係の奇妙な網が露出しました。
私ができるようにしたいのは、プロジェクト内の特定requireのパスを検索するパスのリストに追加すること$:です。ただし、特定の 1 つのメソッドのコンテキストでのみそのパスを検索したいと考えています。今、私は次のようなことをしています:
def foo()
# Look up old paths, add new special path.
paths = $:
$: << special_path
# Do work ...
bar()
baz()
quux()
# Reset.
$:.clear
$: << paths
end
def bar()
require '...' # If called from within foo(), will also search special_path.
...
end
これは明らかに巨大なハックです。より良い方法はありますか?