Ruby Gems или/или зависимость?

Мой гем VCR в настоящее время зависит от FakeWeb. У меня он объявлен как зависимость в моей спецификации gemspec.

Я работаю с автором WebMock (библиотека, которая предоставляет функции, аналогичные FakeWeb), чтобы получить видеомагнитофон. для работы с WebMock, чтобы пользователи VCR могли использовать либо FakeWeb, либо WebMock в качестве библиотеки заглушек http.

Когда придет время выпуска следующей версии VCR, я не уверен, как лучше справиться с этими зависимостями. VCR будет зависеть либо от WebMock, либо от FakeWeb (но не требует обоих) и будет иметь определенные требования к версии для обоих. Я мог бы добавить обе зависимости в свою спецификацию драгоценных камней, но когда вы используете bundler, он связывает все зависимости драгоценных камней, поэтому обе FakeWeb и Webmock будут включены в состав приложения.

Я думал, что, возможно, я не буду объявлять ни один из драгоценных камней как зависимость и проверять наличие любой библиотеки во время выполнения (наряду с проверкой версии) и давать пользователю полезное сообщение об ошибке, если ни один из них не присутствует в поддерживаемой версии. Но я не совсем уверен, что мне нравится такой подход.

Есть ли у кого-нибудь предложение о том, как лучше всего справиться с зависимостью либо/или от драгоценного камня?

Спасибо!


person Myron Marston    schedule 10.04.2010    source источник


Ответы (1)


поскольку невозможно объявить какие-либо/или зависимости, я думаю, что не указывать какие-либо зависимости в вашей спецификации драгоценных камней и проверять наличие любой библиотеки во время выполнения - это путь.

person rubiii    schedule 11.04.2010