Мой гем VCR в настоящее время зависит от FakeWeb. У меня он объявлен как зависимость в моей спецификации gemspec.
Я работаю с автором WebMock (библиотека, которая предоставляет функции, аналогичные FakeWeb), чтобы получить видеомагнитофон. для работы с WebMock, чтобы пользователи VCR могли использовать либо FakeWeb, либо WebMock в качестве библиотеки заглушек http.
Когда придет время выпуска следующей версии VCR, я не уверен, как лучше справиться с этими зависимостями. VCR будет зависеть либо от WebMock, либо от FakeWeb (но не требует обоих) и будет иметь определенные требования к версии для обоих. Я мог бы добавить обе зависимости в свою спецификацию драгоценных камней, но когда вы используете bundler, он связывает все зависимости драгоценных камней, поэтому обе FakeWeb и Webmock будут включены в состав приложения.
Я думал, что, возможно, я не буду объявлять ни один из драгоценных камней как зависимость и проверять наличие любой библиотеки во время выполнения (наряду с проверкой версии) и давать пользователю полезное сообщение об ошибке, если ни один из них не присутствует в поддерживаемой версии. Но я не совсем уверен, что мне нравится такой подход.
Есть ли у кого-нибудь предложение о том, как лучше всего справиться с зависимостью либо/или от драгоценного камня?
Спасибо!