如何修改Ruby gem
如何修改现有的*.gem文件?我想在gem中修改Rakefile,以便它能够在Windows上编译。您可以如何修改Ruby gem,ruby,gem,Ruby,Gem,如何修改现有的*.gem文件?我想在gem中修改Rakefile,以便它能够在Windows上编译。您可以gem解包它,添加您的修改,然后根据需要修改gempec并重新构建它: 也许一种更容易接受和开放源码的方法是检查gem的源代码是否可以在github之类的平台上使用。然后创建一个gem代码分支,进行更改,并发送请求。很有可能,其他人也想要这个功能,你的贡献也会受到欢迎 如果该gem缺少gempec,请使用以下命令提取它: gem spec my_gem --ruby > my_g
gem解包
它,添加您的修改,然后根据需要修改gempec并重新构建它:
gem spec my_gem --ruby > my_gem.gemspec
当然,用合适的宝石名称替换我的宝石。编辑生成的文件以适应(在一个示例中,我不得不删除导致错误的一行),然后您就可以开始了。较新版本的bundler允许您使用以下命令执行此操作:
bundle open gem_to_edit
这将在默认文本编辑器中打开gem代码
(提示:如果您在Mac OSX/Linux上,您可以通过更改$editor变量来指定默认的文本编辑器。假设您在bash上,您只需打开
~/.bash_配置文件
并添加:export editor='subl-w'
以将Sublime文本设置为默认编辑器)将其源代码下载到单独的文件夹中(可能来自github)。然后修改您的Gemfile以直接指向源,以便您可以编辑它并直接测试更改
例如,假设您要编辑secure_headers gem,并且已将其克隆到~/workspace/secureheaders中。然后您可以在gem文件中使用以下内容:
gem 'secure_headers', :path => "~/workspace/secureheaders"
然后,只需修改源代码树中的源文件,您就可以直接看到所做的更改。+1这是唯一一个完整描述如何测试修改后的源代码的答案。现在所有这些都有重定向循环。我想我们永远也不知道将来如何为任何人重新构建它:只需执行
gem build
generals即可这篇文章介绍了如何巧妙地做到这一点,并使用Bundler指向您的叉子: