require
и load
просто методы, как и любой другой. Вы можете отменить их, переопределить их, переопределить их, зацепить их, обернуть их, чтобы сделать все, что вы хотите. На самом деле, именно так работает RubyGems.
Теперь я не знаю, реализовал ли кто-то это для вас , но я действительно помню некоторые обсуждения этого в списке рассылки ruby-talk .
Однако, есть некоторые примеры загрузки библиотечного кода из альтернативных мест, которые вы можете посмотреть, и, возможно, скопировать / адаптировать то, что они делают для вашей цели:
- http_require делает в значительной степени то, на что это похоже: он позволяет вам
require
HTTP URI
- Crate - это инструмент упаковки Ruby, который упаковывает приложение Ruby в один двоичный файл и пару баз данных SQLite; он изменяет
require
для загрузки библиотек из (зашифрованной) базы данных SQLite вместо файловой системы
- и, конечно, я уже упоминал RubyGems