我找到了一个有用的宝石(如果你很好奇,这里就是链接).我用它安装了它sudo gem install json_resume
.现在它驻留在/Library/Ruby/Gems/2.0.0/gems/json_resume-1.0.4/
(Mac OS)上.但是,我需要改变它的一些元素.到目前为止,我/Library
直接改变了它们.这显然不是最好的方法.
我想分叉存储库并安装我的版本.我该怎么做?我找到了这个答案,但我对Ruby太新了,不明白该怎么做.
更多细节:安装gem后,我发现了以下脚本/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)
Run Code Online (Sandbox Code Playgroud)
好像它调用了安装的gem /Library/Ruby/Gems/2.0.0/gems/json_resume-1.0.4/
.我没有把它指向我的分叉版本.
您绝对不应该修改系统范围内安装的版本.
相反,你应该:
在本地签出您的源代码副本
$ cd /home/my_user
$ git clone git@github.com:/.../my_forked_gem
Run Code Online (Sandbox Code Playgroud)在您的消费项目的Gemfile中使用gem的源代码的本地副本,而不是Rubygems托管的gem:
gem 'my_forked_gem', path: '/home/my_user/my_forked_gem'
Run Code Online (Sandbox Code Playgroud)修改您的本地副本~/my_forked_gem
,并推送到您的分叉Github仓库
针对您认为值得包含在原始gem中的任何功能,针对原始项目发出拉取请求