2017-01-08 3 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 и не понял, что делать.

Подробнее: После установки камня я нашел следующий сценарий /usr/local/bin/json_resume:

#!/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/. Я не указал его на разветвленную версию.

ответ

7

Обязательно не следует изменять версию, установленную в системе.

Вместо этого, вы должны:

  1. Clone репозиторий на Github
  2. заказ ваша копия исходного кода локально

    $ cd /home/my_user 
    $ git clone [email protected]:/.../my_forked_gem 
    
  3. Использование локальной копии источника драгоценного камня кода в Gemfile вашего потребительского проекта вместо драгоценного камня, размещенного в Rubygems:

    gem 'my_forked_gem', path: '/home/my_user/my_forked_gem' 
    
  4. Измените локальную копию в ~/my_forked_gem и нажмите на свой раздвоенный Github репо

  5. Issue тянуть запросы против первоначального проекта для других функций, по вашему мнению, достойны включения в оригинальной драгоценный камень

+0

Будет ли шаг 3 выше перезаписывать версию gem, которая уже была установлена? Или мне нужно сначала удалить его вручную? – Dror

+0

Нет, вам не нужно ничего удалять. В этом весь смысл использования Bundler/Gemfile - он позволяет вам иметь отдельные версии одного и того же драгоценного камня для разных приложений. – meagar

+0

Итак, как мне узнать/выбрать, какая версия используется? – Dror

Смежные вопросы