gpt4 book ai didi

ruby - 在 irb (ruby) 中截断 #inspect 输出

转载 作者:数据小太阳 更新时间:2023-10-29 07:45:46 25 4
gpt4 key购买 nike

我想截断 irb 中的#inspect 输出(大输出必须裁剪到 MAX_LEN)。

目前,我重写了所有特定对象的 :inspect、:to_s 方法。

还有其他解决办法吗?

  • 更改 $stdout ?
  • 其他?

最佳答案

要获得干净的解决方案,gem install hirbhirb如果 irb 的返回值太长,则页面返回值。

如果你想要 monkeypatch irb:

module IRB
class Irb
def output_value
@context.last_value.to_s.slice(0, MAX_LEN)
end
end
end

我不推荐这样做,因为它是一种 hack,并且在需要像 ap 和 hirb 这样的 gem 时会中断。

我建议尝试 ripl 而不是 monkeypatching irb ,一种旨在扩展的 irb 替代方案。以上作为 ripl 插件将是:

require 'ripl'
module Ripl::SlicedInspect
def format_result(result)
result_prompt + result.inspect.slice(MAX_LEN)
end
end
Ripl::Shell.send :include, Ripl::SlicedInspect

有了这个插件,您可以根据需要使用它,或者如果您想始终使用它,可以将其添加到您的 ~/.riplrc 中。

关于ruby - 在 irb (ruby) 中截断 #inspect 输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4385064/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com