【问题标题】:History support in Ruby 2.7 REPLRuby 2.7 REPL 中的历史支持
【发布时间】:2019-08-25 21:49:46
【问题描述】:

如果您键入,我在 IRB 中注意到:

Readline::HISTORY << 'something = ->() { 5 }'

然后当您按下键盘上的向上箭头键时,您将看到您的代码something = -&gt;() { 5 }。然后按回车键执行代码...

这适用于较旧的红宝石。但是对于 Ruby 2.7,它不起作用。 它没有引发任何类型的错误,当您按向上箭头键时,历史记录根本不起作用!

事实上,我已经修补了 REPL 以满足我自己的需要。它将历史记录写入文件,然后在您加载 irb shell 时加载它们(就像 MRuby 的 REPL“mirb”)。 Here's the patched irb.

有没有办法让修补的 irb 与 Ruby 2.7 一起工作?

【问题讨论】:

    标签: ruby irb


    【解决方案1】:

    有没有办法让修补的 irb 与 Ruby 2.7 一起工作?

    让软件的补丁版本与新版本一起工作总是很棘手,尤其是当您对胆量如何工作做出假设时。

    当您的补丁版本与原始版本无关时,这会更难。您创建了自己的 irb 存储库,与原始 irb 没有任何关系,因此无法使用版本控制来保持最新状态。

    相反,创建原始存储库的复刻并在复刻中制作补丁。然后通过从原始上游存储库中提取,您可以更好地了解更改,确保一切正常,并准确找出您的补丁在哪个上游版本失败。

    幸运的是irb was recently spun off into its own gem。分叉该 gem,在该分叉中制作补丁,并通过定期从上游 gem 拉取更改来保持最新。

    然后将您的补丁作为拉取请求提交到上游。如果它们被合并,它们将继续作为更大项目的一部分工作。单独维护它们不再是您的工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-15
      • 2013-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多