Подтвердить что ты не робот

Викинг драгоценного камня для проекта Rails

Я нашел себя дважды в этой ситуации: я устанавливаю драгоценный камень в свою систему и начинаю использовать его из моего проекта Rails. В конце концов мне нужно внести некоторые изменения в этот камень. Как мне продолжить?

В идеале я хотел бы проверить исходный код этого драгоценного камня где-нибудь, например ~/third_party/gems, работать над ним, а вместо этого использовать проект Rails. Возможно ли это?

Во всех случаях драгоценные камни были в github, поэтому я мог бы, вероятно, использовать его в github, клонировать его, делать свои шансы и поддерживать свою собственную ветку. Полагаю, тогда я бы установил эту ветку напрямую с установкой gem на моем сервере. Это имеет смысл?

4b9b3361

Ответ 1

Сегодня это довольно легко сделать с Bundler. Вы создаете локальную копию драгоценного камня, а затем вместо

gem "whatever"

в вашем Gemfile, вы:

gem "whatever", :path => "/home/pupeno/whatever"

После запуска установки пакета жемчуг выбирается из этого каталога. Даже если вы что-то изменяете, все, что вам нужно сделать для перезагрузки, это перезапуск Rails.

Если вам нужно развернуть приложение, используя свои собственные изменения Gem, вы делаете вилку, на Github или аналогичную и в Gemfile, которую вы делаете:

gem "whatever", :git => "[email protected]:/pupeno/whatever.git"

и что он. Это просто, прямо и красиво.

Ответ 2

Во всех случаях драгоценные камни были в github, поэтому я мог бы, вероятно, использовать его в github, клонировать его, делать свои шансы и поддерживать свою собственную ветку. Полагаю, тогда я установил бы эту ветку напрямую с установкой gem на моем сервере.

Если вам действительно нужно взломать настоящий источник драгоценных камней, тогда да, это будет способ сделать это. Однако это должно быть последним средством. Вы не хотите поддерживать фактический драгоценный камень, если вам это не нужно. Почему бы не расширить классы из источника драгоценных камней, функциональность которых вам необходимо изменить и использовать ваши классы вместо классов драгоценных камней в вашем Rails-коде?

Мне редко бывает, что вам действительно нужно взломать сторонний код, чтобы делать то, что вам нужно. Хорошее программное обеспечение может быть расширено/легко дополнено.