如何修改Ruby gem

azt*_*ack 37 ruby gem

如何修改现有的*.gem文件?我想修改gem中的Rakefile,以便它能够在Windows上编译.

dio*_*ziz 50

将其源代码下载到一个单独的文件夹(可能来自github).然后修改您的Gemfile直接指向源,以便您可以编辑它并直接测试您的更改.

例如,假设您要编辑secure_headers gem并将其克隆到〜/ workspace/secureheaders中.然后,您可以在Gemfile中使用以下内容:

gem 'secure_headers', :path => "~/workspace/secureheaders"
Run Code Online (Sandbox Code Playgroud)

然后,只需修改源树中的源文件,您就可以看到直接应用的更改.

  • +1这是唯一完全描述如何测试修改后的源的答案 (9认同)

Mic*_*ohl 39

您可以gem unpack,添加修改,然后根据需要修改gemspec并再次构建:

  • 猜猜我们现在永远都不知道如何建造它 (2认同)

Ame*_*non 23

较新版本的bundler允许您使用以下命令执行此操作:

bundle open gem_to_edit
Run Code Online (Sandbox Code Playgroud)

这将在默认的文本编辑器中打开gem代码.

(提示:如果您使用的是Mac OSX/Linux,则可以通过更改$ EDITOR变量来指定默认文本编辑器.假设您正在使用bash,您可以打开~/.bash_profile并添加:export EDITOR='subl -w'将Sublime Text设置为默认编辑器)


Mik*_*mer 15

也许更可接受和开源友好的方式来检查宝石的源是否可用于像github这样的东西.然后创建gem代码的fork,进行更改,并发送pull请求.机会是,其他人也想要这个功能,你将为你的贡献预示.


Ger*_*rby 6

如果缺少gem的gemspec,请使用以下命令解压缩:

gem spec my_gem --ruby > my_gem.gemspec
Run Code Online (Sandbox Code Playgroud)

当然用适当的gem名称替换my_gem.编辑生成的文件以适应(在一个示例中,我必须删除导致错误的行),您应该好好去.