如何修改现有的* .gem文件?我想修改gem中的Rakefile,以便它能够在Windows上编译。
答案 0 :(得分:47)
将其源代码下载到一个单独的文件夹中(可能来自github)。然后修改您的Gemfile以直接指向源,以便您可以编辑它并直接测试您的更改。
例如,假设您要编辑secure_headers gem并将其克隆到〜/ workspace / secureheaders中。然后,您可以在Gemfile中使用以下内容:
gem 'secure_headers', :path => "~/workspace/secureheaders"
然后,只需修改源树中的源文件,您就可以看到直接应用的更改。
答案 1 :(得分:38)
您可gem unpack
,添加修改,然后根据需要修改gemspec并重新构建:
答案 2 :(得分:22)
较新版本的bundler允许您使用以下命令执行此操作:
bundle open gem_to_edit
这将在默认的文本编辑器中打开gem代码。
(提示:如果您使用的是Mac OSX / Linux,则可以通过更改$ EDITOR变量来指定默认文本编辑器。假设您使用bash,则可以打开~/.bash_profile
并添加:{{ 1}}将Sublime Text设置为默认编辑器
答案 3 :(得分:15)
或许更可接受且开源友好的方法是检查gem的源是否可用于像github这样的东西。然后创建gem代码的fork,进行更改,并发送pull请求。机会是,其他人也想要这个功能,你将为你的贡献预示。
答案 4 :(得分:5)
如果缺少gem的gemspec,请使用以下命令解压缩:
gem spec my_gem --ruby > my_gem.gemspec
当然用适当的宝石名称替换my_gem。编辑生成的文件以适应(在一个示例中,我必须删除导致错误的行),你应该好好去。