Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何修改Ruby gem_Ruby_Gem - Fatal编程技术网

如何修改Ruby gem

如何修改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文件?我想在gem中修改Rakefile,以便它能够在Windows上编译。

您可以
gem解包
它,添加您的修改,然后根据需要修改gempec并重新构建它:


也许一种更容易接受和开放源码的方法是检查gem的源代码是否可以在github之类的平台上使用。然后创建一个gem代码分支,进行更改,并发送请求。很有可能,其他人也想要这个功能,你的贡献也会受到欢迎

如果该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指向您的叉子: