Rails 프로젝트를위한 gem Forking
이 상황에서 두 번 나 자신을 발견했습니다. 시스템에 gem을 설치하고 Rails 프로젝트에서 사용하기 시작했습니다. 결국 나는 그 보석을 약간 변경해야합니다. 어떻게 진행해야합니까?
이상적으로는 ~ / third_party / gems와 같은 어딘가에서 해당 gem의 소스 코드를 확인하고 작업하고 Rails 프로젝트에서 대신 사용하도록하고 싶습니다. 가능합니까?
모든 경우에 보석은 github에 있었으므로 아마도 github에서 그것을 위해 복제하고 기회를 만들고 내 자신의 지점을 유지할 것입니다. 그런 다음 서버에 gem install을 사용하여 해당 분기를 직접 설치한다고 가정합니다. 말이 돼?
오늘날 이것은 Bundler로 매우 쉽게 할 수 있습니다. 보석의 로컬 사본을 만든 다음
gem "whatever"
Gemfile에서 다음을 수행합니다.
gem "whatever", :path => "/home/pupeno/whatever"
번들 설치를 실행 한 후 해당 디렉토리에서 gem을 선택합니다. 거기에서 무언가를 수정하더라도 다시로드하려면 Rails를 다시 시작하면됩니다.
Gem의 자체 변경 사항을 사용하여 애플리케이션을 배포해야하는 경우 Github 등에서 포크를 만들고 Gemfile에서 다음을 수행합니다.
gem "whatever", :git => "git@github.com:/pupeno/whatever.git"
그리고 그게 다야. 간단하고 간단하며 아름답습니다.
모든 경우에 보석은 github에 있었으므로 아마도 github에서 그것을 위해 복제하고 기회를 만들고 내 자신의 지점을 유지할 것입니다. 그런 다음 서버에 gem install을 사용하여 해당 분기를 직접 설치한다고 가정합니다.
실제 gem 소스를 해킹해야한다면 예, 그렇게하는 것이 좋습니다. 그러나 이것은 최후의 수단이되어야합니다. 필요하지 않은 경우 실제 보석을 유지하고 싶지 않습니다. Rails 코드에서 gem 클래스 대신 클래스를 변경하고 사용해야하는 기능을 가진 gem 소스에서 클래스를 확장하는 것은 어떻습니까?
필요한 작업을 수행하기 위해 실제로 타사 코드를 직접 해킹해야하는 경우는 드뭅니다. 좋은 소프트웨어는 확장 / 쉽게 확장 될 수 있습니다.
참고 URL : https://stackoverflow.com/questions/1582728/forking-a-gem-for-a-rails-project
'Programing' 카테고리의 다른 글
PL / SQL 블록에서 SELECT 문을 출력 할 수 있습니까? (0) | 2020.12.12 |
---|---|
DateTimePicker에 빈 문자열을 표시하려면 어떻게해야합니까? (0) | 2020.12.12 |
$ (window) .height () 대 $ (document) .height (0) | 2020.12.11 |
asp.net MVC 4 및 Razor보기에서 경로의 이미지를 표시하는 방법은 무엇입니까? (0) | 2020.12.11 |
원격 .NET 디버거가 연결될 때까지 기다리는 방법 (0) | 2020.12.11 |