【发布时间】:2011-04-01 16:00:13
【问题描述】:
如何修改现有的 *.gem 文件?我想修改 gem 中的 Rakefile,以便它能够在 Windows 上编译。
【问题讨论】:
如何修改现有的 *.gem 文件?我想修改 gem 中的 Rakefile,以便它能够在 Windows 上编译。
【问题讨论】:
将其源代码下载到单独的文件夹中(可能来自 github)。然后修改您的 Gemfile 以直接指向源代码,以便您可以对其进行编辑并直接测试您的更改。
例如,假设您要编辑secure_headers gem,并且您已将其克隆到~/workspace/secureheaders。然后您可以在 Gemfile 中使用以下内容:
gem 'secure_headers', :path => "~/workspace/secureheaders"
然后,只需修改源代码树中的源文件,您应该能够看到直接应用的更改。
【讨论】:
你可以gem unpack它,添加你的修改,然后根据需要修改gemspec并重新构建它:
【讨论】:
gem build <path/to/gemspecfile>
较新版本的捆绑器允许您使用以下命令执行此操作:
bundle open gem_to_edit
这将在您的默认文本编辑器中打开 gem 代码。
(提示:如果您使用的是 Mac OSX/Linux,您可以通过更改 $EDITOR 变量来指定您的默认文本编辑器。假设您使用的是 bash,您可以打开您的 ~/.bash_profile 并添加:export EDITOR='subl -w' 到将 Sublime Text 设置为默认编辑器)
【讨论】:
也许一种更可接受且对开源友好的方法是检查 gem 的源代码是否在 github 之类的东西上可用。然后创建 gem 代码的分支,进行更改并发送拉取请求。很有可能,其他人也想要该功能,而您的贡献将受到赞誉。
【讨论】:
如果您缺少 gem 的 gemspec,请使用以下命令提取它:
gem spec my_gem --ruby > my_gem.gemspec
当然,将 my_gem 替换为适当的 gem 名称。编辑生成的文件以使其适合(在一个示例中,我不得不删除导致错误的一行),您应该一切顺利。
【讨论】: