2017-01-08 7 views
0

好きな宝石を見つけました(好奇心が強い場合はhere's the link)。 sudo gem install json_resumeを使ってインストールしました。現在は/Library/Ruby/Gems/2.0.0/gems/json_resume-1.0.4/(Mac OS)にあります。しかし、私はその要素のいくつかを変更する必要がありました。これまでのところ私は/Libraryに直接変更しました。これは明らかに最良の方法ではありません。効率的に宝石をフォークする方法

私はリポジトリをフォークし、私のバージョンをインストールしたいと思います。どうすればいいのですか? this answerが見つかりましたが、私はRubyにはあまりにも新しく、何をすべきか理解できませんでした。

詳細:

#!/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby 


#!/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby 
# 
# This file was generated by RubyGems. 
# 
# The application 'json_resume' is installed as part of a gem, and 
# this file is here to facilitate running it. 
# 

require 'rubygems' 

version = ">= 0" 

if ARGV.first 
    str = ARGV.first 
    str = str.dup.force_encoding("BINARY") if str.respond_to? :force_encoding 
    if str =~ /\A_(.*)_\z/ 
    version = $1 
    ARGV.shift 
    end 
end 

gem 'json_resume', version 
load Gem.bin_path('json_resume', 'json_resume', version) 

それは/Library/Ruby/Gems/2.0.0/gems/json_resume-1.0.4/に設置された宝石を呼び出すように思える:宝石をインストールした後、私は次のスクリプト/usr/local/bin/json_resumeを見つけました。私はそれを私のフォークされたバージョンに向けることに失敗しました。

答えて

7

システム全体にインストールされているバージョンは絶対に変更しないでください。

代わりに、あなたべき:

  1. クローンのGithub
  2. チェックアウトあなたのコピーをローカルのソースコードの

    $ cd /home/my_user 
    $ git clone [email protected]:/.../my_forked_gem 
    
  3. 宝石のソースのローカルコピーを使用してください上のリポジトリRubygemsでホストされているgemの代わりに、あなたのプロジェクトのGemfileにコードを書く:

    gem 'my_forked_gem', path: '/home/my_user/my_forked_gem' 
    
  4. はあなたが考えて、元の宝石に含めるの価値があるすべての機能のために元のプロジェクトに対して

  5. 発行プル要求を~/my_forked_gemにローカルコピーを変更し、あなたのフォークのGithubレポにプッシュ

+0

すでにインストールされているgemのバージョンを上記の手順3で上書きしますか?または、最初に手動で削除する必要がありますか? – Dror

+0

いいえ、何もアンインストールする必要はありません。それはBundler/Gemfileの使用の全ポイントです。異なるアプリケーション用にインストールされた同じ宝石のバージョンを別々にすることができます。 – meagar

+0

どのバージョンを使用するかをどのように知っていますか/選択していますか? – Dror

関連する問題